C primer plus 读书笔记第五章
本章的标题是运算符,表达式和语句。主要研究如何处理数据。
示例代码展示了一个使用简单的while循环的代码,难度不大。
下面简单介绍本章的基本概念。
1.基本运算符。
基本运算符有:赋值运算符(C语言可以多重赋值,例如cheeta = tarzan = 68),加法运算,减法运算符,符号运算符(也称为一元运算符),乘法运算符,除法运算符(整数除法结果的小数部分会丢弃,而整数除浮点数的时候,编译器是先将整数转换为浮点数)
2.其他运算符
有sizeof,size_t,%(注意负数的情况),++,--(作者在书中说,假如你还用i = i + 1;这种语句,没人会觉得你是个C语言程序员。。。)
这里重点说明一下增量和减量运算符的优先级:只有圆括号比它们高。如下代码:y = 2; n = 3; nextnum = (y + n++) * 6; nextnum的值为30。这是因为只有当使用了n的值之后, n才会增加到4。优先级说明++只属于n,而不属于y + n。可以这么记:出现n++时,表示先使用n,再增加n的值;出现++n时,先将n的值增加,再使用它。由于C语言编译器可以选择先计算函数哪里的参数,所以你不知道编译器以什么顺序来操作。
原则:1.如果一个变量出现在同一个函数多个参数中,不要将增量或者减量运算用在它上面。2.当一个变量多次出现在一个表达式中时,不要将增量或者减量运算符用到它上面。
3.表达式和语句
C语言的一个重要属性是,每个C表达式都有一个值。像q = 5*3也是表达式,这个表达式作为整体的值为10, 6+( c = 3+8)这也是表达式,而且在C语言中合法,但是不建议使用。
一个语句是一个完整的指令,带有某种必须的标点来标识。一般简单语句可以分为4种:声明语句,赋值语句(赋值语句是表达式语句的特例),函数语句,结构化语句。
4.类型转换
类型转换的基本规则:1.当表达式有char和short类型时,都被自动转换为int,在需要的情况下,自动转换为unsigned int。在K&R C下,float自动转换为double。2.在包含两种数据类型的任何运算里,两个值都会被转换为两种类型里级别较高的。3.类型的级别从高到低:long double, double, float, unsigned long long, long long, unsigned long, long ,unsigned int和int。4.赋值语句中,计算的最后结果被转换为将要被赋值的那个变量的类型。5.char和short作为函数参数被传递时,会被转换为int, float会被转换为double。
5.带有参数的函数
要注意的是,原型是一个函数声明,它描述了函数的返回值和其参数。
练习题也比较简单,没有难点。。。
to be continued...
C primer plus 读书笔记第五章的更多相关文章
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
- 《Linux内核设计与实现》读书笔记——第五章
<Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...
- 《Linux内核设计与实现》读书笔记 第五章 系统调用
第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种 ...
- Getting Started With Hazelcast 读书笔记(第五章,第六章)
第五章 监听 本章应该是Hazelcast的核心机制了,Hazelcast通过注册各种监听器获悉集群中其他应用对数据的修改,成员的加入,退出等. 分为3个层次. 1.EntryListener(对数据 ...
- 《linux内核设计与实现》读书笔记第五章——系统调用
第5章 系统调用 操作系统提供接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行. 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 该层主要作用有三个: 为用户空间提供了 ...
- 深入Java虚拟机读书笔记第五章Java虚拟机
Java虚拟机 Java虚拟机之所以被称之为是虚拟的,就是因为它仅仅是由一个规范来定义的抽象计算机.因此,要运行某个Java程序,首先需要一个符合该规范的具体实现. Java虚拟机的生命周期 一个运行 ...
- C primer plus 读书笔记第十一章
本章标题是字符串和字符串函数.主要是了解和字符串有关的函数. 1.字符串表示和字符串I/O 主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串. 其中要注意的是,数组初始化是从静态存储区把一 ...
- C primer plus 读书笔记第六章和第七章
这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...
- C primer plus 读书笔记第四章
本章的标题是字符串的格式化输入/输出,重点介绍输入和输出. 本章的第一段示例代码和上一张示例代码很相近,代码就不贴了,新出现的特性是使用了一个数组来存放字符串,C预处理命令和strlen()函数. 下 ...
随机推荐
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序(Oledb)
转载:http://blog.csdn.net/lemontec/article/details/1754413 前几天用c#读 Excel 出现了如下问题未在本地计算机上注册“Microsoft.J ...
- 基于ThinkPHP+AJAX的省市区三级联动
练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...
- C++简单工厂模式
核心思想:用一个工厂类根据不同的输入条件new出不同的派生类指针,然后由多态调用不同派生类中virtual函数,得到不同的结果 所有的判断处理在工厂类中完成,通过CreateFactory函数,根据不 ...
- 【NOIP2014】赛后总结
noip考完了,心中所牵挂的一下子就消散了,感觉浑身很轻松. 说实话,我参加noip有好几次了,这应该会是我的最后一次,尽管如此,无论是在考试的前几天还是在考试的时候,心中都没有太多的紧张. 我在no ...
- 开始编写正式的iOS 程序(iOS编程指导)
App设计基础 在确定了你的App主要功能后,需要把它转化为代码.如果你是第一次开发属于自己的iOS App,需要花些时间熟悉基本概念.iOS内置了很多设计样式,多了解下能对你以后有帮助. 初稿 设计 ...
- Google jQuery URL
Query 在线地址:https://developers.google.com/speed/libraries/devguide?hl=zh-CN#jquery此地址里还包含了很多的JS框架.
- Hadoop 中 IPC 的源码分析
最近开始看 Hadoop 的一些源码,展开hadoop的源码包,各个组件分得比较清楚,于是开始看一下 IPC 的一些源码. IPC模块,也就是进程间通信模块,如果是在不同的机器上,那就可以理解为 RP ...
- Python django admin 替换表单控件
测试版本: Python 2.7 Django 1.6.2 models.py from django.db import models class Article(models.Model): ti ...
- c#读取进程列表判断程序是否已经启动(转)
方法一: using System.Diagnostics; Process[] vProcesses = Process.GetProcesses(); foreach (Process vProc ...
- 浅谈MIPS地址对齐问题
1.什么叫地址对齐? RISC 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐. 2.计算机主要的架构分哪两类?及其地址对齐在两者的区别? 计算机主 ...