1.转义字符
转义字符 | 释义 |
\? | 在书写连续多个问号时使用,防止他们被解析成三字母词 |
\' | 用于表示字符常量' |
\" | 用于表示一个字符串内部的双引号 |
\\ | 用于表示一个反斜杠,防止它被解释为一个转义序列符。 |
\a | 警告字符,蜂鸣 |
\b | 退格符 |
\f | 进纸符 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ddd | ddd表示1~3个八进制的数字。 如: \130 即:ASCII中的X |
\xdd | dd表示2个十六进制数字。 如: \x30 即:ASCII中的0 |
例题:使用strlen()函数计算该字符串的长度
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c"));
由于/ddd 会识别为8进制,因此输出结果为:14
2.操作符
-
算术操作符(+加 -减 *乘 /除 %取模/余)
注意:取模操作符只能作用于整型
-
移位操作符(<<左移 >>右移)
在二进制位中移动数据的二进制数
-
位操作符(&按位与 |按位或 ^按位异或)
int a = 3;
int b = 5;
int c = a & b; //按位与,对应的二进制位有0则为0,全1才为1
int c = a | b; //按位或,对应的二进制位有1则为1,全0才为0
int c = a ^ b; //按位异或,对应的二进制位相同为0,相异为1
-
赋值操作符(= += -= *= /= &= ^= |= >>= <<=)
复合赋值符
-
单目操作符
~按位取反(2进制位) 反码的数加1就是补码
此时b输出为0
前置++,先给自身+1,再赋给b
后置++,先赋值,再自身+1
前置后置++--规则:前置是先++/--,后使用;而后置是先使用,再++/--
(int)……强制类型转换,()括号里括类型,不是括数字
int n = (int)3.14;
-
关系操作符(> >= < <= == !=)
-
逻辑操作符(&&(并且)逻辑与 ||(或者)逻辑或)
-
条件操作符(exp1? exp2 : exp3)(三目操作符)
即:exp1(表达式1)的结果为真则执行exp2,否则执行exp3
int a = 0;
int b = 0;
int max = 0;
scanf("%d %d",&a,&b);
max = (a>b ? a : b)
-
逗号表达式
int a = 3;
int b = 5;
int c = 10;
//逗号表达式会从左向右依次计算
//整个表达式的结果是最后一个表达式的结果
int d = (a + 2 , c = a -3 , c = b + 4);
-
下标引用、函数调用和结构成员([] () . ->)