一、注释符号
1、" // " 和“ / * * / ” , C语言中,编译器会将 注释剔除,然后用空格去代替原来的注释。
2、“ / * * / ” 这种形式的注释不能嵌套,如:
/ 这是 / * 非法的 * / * /
因为 “ / * ”总是与离他最近的 “ * / ” 匹配。
3、y = x/ *p 或 y = x/(*p)
表示 x 除以 p指向的内存里的值,把结果赋值为 y 。 **斜杠(/)和星号()之间没有空格 就会被当作注释的开始。**
4、出色注释的基本要求:
规则1:注释应当准确、易懂,防止有二义性。错误的注释不但无益反而有害。
规则2:边写代码边注释,修改代码要修改相应的注释,以保证注释与代码的一致性。
不再有用的注释要及时删除。
规则3:注释是对代码的 “ 提示 ”,而不是文档。
程序中的注释应当简单明了,注释太多会让人眼花缭乱。
规则4:一目了然的语句不加注释。
规则5:对于全局数据(全局变量、常量定义等)必须要加注释。
规则6:注释采用英语,尽量避免在注释中使用缩写,特别是不常用的缩写。
规则7:注释的位置应与被描述的代码相邻,可以与语句在同一行,也可以在上行,
但不可放在下方。同一结构中不同域的注释要对齐。
规则8:当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,
便于阅读。
规则9:注释的缩进要与代码的缩进一致。
规则10:注释代码段时应注重 “ 为何做(why)” ,而不是 “ 怎么做 (how)”。
规则11:数值的单位一定要注释。
规则12:对变量的范围给出注释。
规则13:对一系列的数字编号给出注释。尤其在编写底层驱动程序的时候。
规则14:对于函数的入口、出口数据给出注释。
二、连续符和转义符
1、反斜杠(\)可以被用作连续符外,还能被用作转义字符的开始标识。
2、被用作连续符时:反斜杠后不能有空格,反斜杠的下一行也不能有空格。
#def\
ine MAC\
RO 这是一条合法的\\
n字符串
3、常用的转义字符
\n | 回车换行 |
---|---|
\t | 横向跳到下一制表位置 |
\v | 竖向跳格 |
\b | 退格 |
\r | 回车 |
\f | 走纸换页 |
\ | 反斜杠符 ” \ “ |
’ | 单引号符 |
\a | 鸣铃 |
\ddd | 1~3位八进制数所代表的字符 |
\xhh | 1~2位十六进制数所代表的字符 |
三、单引号、双引号
1、双引号引起来的都是字符串常量,单引号引起来的都是字符常量。
2、‘ a ’ 和 ’ a ’ 在内存中,前者是一个字节,后者是两个字节。
四、逻辑运算符
1、或运算(||):参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。
2、与运算(&&):参与运算的两个量都为真时,结果为真,否则为假。
3、非运算(!):参与运算量为真时,结果为假;参与结果为假时,结果为真。
4、优先级:赋值运算符(=) < &&和|| < 关系运算符 < 算术运算符 < 非(!)
五、位运算符
1、C语言中位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
“>>” 右移
2、实现不用第三个变量交换两个变量的值:
a ^= b;
b ^= a;
a ^= b;
3、左移运算符:是双目运算符,其功能是把<<左边的运算数的各二进位全部左移若干位,由<<右边的数指定移动的位数,高位丢弃,地位补0。
4、右移运算符:是双目运算符,其功能是把>>左边的运算数的各二进位全部右移若干位,由>>右边的数指定移动的位数。**注意:**对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。
六、花括号
1、花括号的作用是:打包。
2、为了把一些语句或代码打个包包起来,使之成为一个整体,并与外界绝缘。
七、++、–操作符
i = 0;
① j = (i++,i++,i++);
②for(i = 0; i < 10; i ++)
{
//code
}
③ k = (i++) + (i++) +(i++);
1、逗号表达式,i 在遇到每个逗号后,认为本计算单位已经结束,i 这个时候自加。结果为2。
2、i 与 10进行比较后,认为本计算单位已经结束。
3、i 遇到分号才认为本计算单位已经结束,i 这个时候自加。
4、后缀运算是在本计算单位计算结束后再自加或自减。
5、C语言有一个规则:每一个符号应该包含尽可能多的字符。
++i+++i+++i;
表示为:
++i+ ++i+ ++i;
八、运算符的优先级
优先级问题 | 表达式 |
---|---|
.的优先级高于* | * p.f , 对p取f偏移,作为指针,然后进行接触引用操作。*(p.f) |
[ ]高于 * | int *ap[ ], ap是个元素为int 指针的数组 。int *(ap[ ]) |
函数()高于* | int *fp() , fp是一个函数,返回int *。int *(fp()) |
==和!=高于位操作 | (val & mask != 0), val & (mask != 0) |
==和!=高于赋值符 | c = getchar() != EOF, c = (getchar() != EOF) |
算术运算符高于位移运算符 | msb << 4 + lab, msb << (4 + lab) |
逗号运算符在所有运算符中优先级最低 | i = 1, 2; (i = 1), 2 |
转载:https://blog.csdn.net/qq_45124382/article/details/101201230