《C语言深度解培》读书笔记之二
来源:互联网 发布:淘宝开店卖什么好 编辑:程序博客网 时间:2024/05/23 18:34
C语言的基本符号就有20多个,每个符号可能同时具有多重含义,而且这些符号之间相互结合又使得C语言中的符号变得更加复杂起来。
注释
C语言的注释可以出现在程序的任何地方,这句话对不对?
int/**/n;char *s="abcd //hgjkeife";//is it a \valid commentin/**/t i;
前三条注释都正确,第四条不正确。
第一条:编译器会将注释剔除,而不是简单的剔除,而是用空格来代替原来的注释。不用担心解析成intn
第二条:双绰号括起来的都是字符串常量,双斜杠也不例外。
第三条:合法的注释,编译器会有警告提示:warning C4010: 单行注释包含行继续符
第四条:不合法。注释会用空格进行替换。
y=x/*p;编译器会把/*当成注释的开始,而不会当成*p。修改成y=x/ *p; 则可
也就是说只要斜杠(/)和星号(*)之前没有空格,都会被当成注释的开始。
注释代码段时应注重“为何做(why)”而不是“怎么做(how)”
接续符和转义符
C语言里以斜杠(\)表示断行。编译器会被反斜杠剔除,跟在反斜杠后面的字符自动接续到前一行。
注意:反斜杠后面不能有空格,反斜杠的下一行之前也不能有空格。
下面是几个特例
/\/这是一条简单的合法的单行注释cha\r *ss="这是一个合法的\\n字符串";#def\ine MAC\RO这是一条合法的\宏定义
反斜杠除了可以被用作接续符,还能被用作转义字符的开始标识。
单引号、双引号
1 ‘1’和“1”
第一个是整型常数,32位系统下占4个字节。
第二个是字符常量,占1个字节。
第三个是字符串常量,占2个字节。
字符在内存里是按ascii码存储的,所以字符常量可以与整型常量或变量进行运算。‘A’+1
逻辑运算符
! && ||
位运算符
C中位运算符包括以下几种:
&按位与
|按位或
^按位异或
~取反
<<左移
>>右移
注意:逻辑运算符&& || 和位运算符 & | 的区别,不要混淆。
其中按位异或可实现不用第三个临时变量交换两个变量的值。
a^=b;b^=a;a^=b;
左移运算符<<:双目运算符。其功能把“<<”左边的运算数的各个二进制位全部向左移动若干位,由“<<”右边的数指定移动的位数。高位丢弃,低位补0.
右移运算符>>:双目运算符。其功能是把“>>”左边的运算数的各个二进制位全部向右移动若干位,由“>>”右边的数指定移动的位数。但注意:对于有符号数,在向右移时,符号位随同移动,当为正数时,最高位补0,当为负数时,符号位为1,最高位是补0还是补1取决于编译系统的规定。
用最有效率的方法算出2*8=?
0x01<<2+3 ;
结果是32.因为“+”号的优先级高,
改成 0x01<<2+30; 或 0x01<<2-3;
这样行嘛,不行。一个整型长度为32位,左移32会造成溢出,左移-1位?也不行。
左移和右移的位数是有讲究的,左移和右移的位数不能大于数据的长度,不能小于0.
花括号
花括号为了把一些语句或代码打个包包起来,使之形成一个整体,并与外界绝缘。
++、--操作符
后缀运算符在本计算单位计算结束后再自加或自减。
h=(i++,i++,i++); //在遇到逗号时才自加。 h=2,i=3
h=(i++)+(i++)+(i++); //在遇到分号时才自加。 h=0,i=3
贪心法
运算符的优先级
这些容易出错的情况,一定要在编译器上多调试调试,这样印象会深一些,光靠看代码,水平是很难提上来的,调试代码是最长水平的。
- 《C语言深度解培》读书笔记之二
- 《C语言深度解培》读书笔记之三
- 《C语言深度解培》读书笔记之四
- 《C语言深度解培》读书笔记之一
- 读书笔记:c语言深度剖析之关键字
- C语言深度解析之二
- c语言深度剖析 -- 读书笔记
- C 语言深度解剖 读书笔记
- 《C语言深度解剖》读书笔记
- 《C语言深度解剖》读书笔记
- C语言深度解剖读书笔记
- C语言深度解剖读书笔记
- C语言深度剖析读书笔记
- C语言深度解剖读书笔记
- C语言深度解剖读书笔记
- C语言深度解剖读书笔记
- C语言深度解剖读书笔记
- C语言深度剖析读书笔记
- Python写的BloomFilter
- git rebase
- 各种排序练习
- Office插件开发
- 教你一招让你的IE 6/7/8/9/x都支持HTML5
- 《C语言深度解培》读书笔记之二
- Spring学习----------AOP以及Spring配置文件详解
- 操作系统 内存地址(逻辑地址、线性地址、物理地址)概念(转)
- Javascript 取小数点后面N位
- cocos2d安装步骤(安装后无模板的问题)
- confluece安装文档及破解
- http://blog.csdn.net/qinjuning
- 公司使用的PC机装的是Athreos网卡,装Ubuntu的时候折腾了好久---特此转载一篇文章
- C++ set 容器