转义字符
转义字符:转变了原来的意思。
例如:
打印文件位置:
int main(){printf("c:\test\test.c"); //运行结果中没有\t。printf("c:\\test\\test.c"); //使用\转义。"\\"表示一个反斜杠。return 0;}
早期编译器中的三字母词
int main(){printf("(are you ok??)");//在某些编译器中会出现将"??)"转义成"]"的情况。称为三字母词。return 0;}
打印单引号
int main(){printf("%c\n",'\'');//打印单个单引号的时候使用\将一对单引号之间的'转义以打印,//否则会被识别成与两个引号为一对,最后一个落单。双引号同理。return 0;}
\ddd和\xdd
int main(){printf("%d\n",'\130'); //八进制的130转换成十进制的结果//结果为88printf("%c\n",'\130'); //打印ASCII码为八进制130的符号。//结果为X。printf("%d\n",'\x30'); //十六进制的30转换成十进制的结果//结果为48printf("%c\n",'\x30'); //打印ASCII码为十六进制30的符号。//结果为0。return 0;}
注释
用于解释复杂代码。
/*int main(){printf("%c\n",'\''); //C++注释风格/*C语言注释风格。*/return 0;}*/不支持嵌套注释。
选择语句
int main(){int input = 0;printf("打过恶兆了吗?\n");printf("过了-->选1,没过-->选2\n");scanf("%d", &input);if (input == 1)print("好耶!过一次九千块!\n");elseprint("加油,大高个打一次1000块。\n");return 0;}
调试过程中遇到了中文乱码的问题,遂搜索解决方案:
文件编码格式出了问题,默认编码格式为utf-8,改为中文编码格式(GB2312)后恢复。
修改编码方法
循环语句
int main(){int line = 0;while(line<30000){line++;printf("写代码%d\n", line);if (line == 30000)printf("好offer");}return 0;}
函数
int Add(int x, int y){int z = x+y;return z;}int main(){int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = Add(num1, num2);printf("sum = %d\n", sum);return 0;}
操作符
算术操作符
若操作符两端均为整数,那么不论结果变量定义为int型还是float型,均只输出整数部分。
+ 加
- 减
* 乘
/ 除
% 取余(取模)
移位操作符
移位操作符移动的是二进制位
>> 右移操作符
<< 左移操作符
位操作符
& 按位与
| 按位或
^ 按位异或
赋值操作符
=
+= : a = a + 5; --> a +=5;
-=
*=
/=
&=
^=
|=
>>=
<<=
单目操作符
只有一个操作数的操作符。
! : 逻辑反操作
int main(){int a = 10;printf("%d\n", !a); //因为a的值不等于0,故a为真(非0),!a为假(0),打印结果为0;return 0;}
用法:
int main(){if(a){//如果a为真,执行}if(!a){//如果a为假,执行}return 0;}
- : 负值
+ : 正值
& : 取地址
sizeof : 计算操作数的类型长度(以字节为单位)
sizeof是操作符,所以sizeof()括号可以省略(一般不省略)
用sizeof计算数组元素个数
int sz = sizeof(arr) / sizeof(arr[0]);//用数组的总大小除以数组第一个元素的大小即为数组元素个数。
~ : 对一个数的二进制按位取反
不考虑符号位不变。
原码、反码、补码相关基础知识
整型变量占4字节,32比特,故二进制数应为32位。对正整数:原码、反码、补码相同。对负数:第一位符号位(1为负),剩下31位表示数。原码:直接用二进制表示数。例11使用8位二进制表示应为:00001011,-11为:10001011。
反码:原码除符号位外,按位取反。
补码:反码二进制序列+1。整型变量在内存中存储的是补码。
将0按位取反
0:
原码:
00000000 00000000 00000000 00000000
反码:
11111111 11111111 11111111 11111111
补码:
00000000 00000000 00000000 00000000
-1:
原码:
10000000 00000000 00000000 00000001
反码:
11111111 11111111 11111111 11111110
补码:
11111111 11111111 11111111 11111111
++ : 前置、后置++;- - : 前置、后置- -
int main(){int a = 10;int b = 10;int c = ++a; //先++,再赋给cint d = b++; //先赋给d,再++printf("%d\n", a); //输出11printf("%d\n", b); //输出11printf("%d\n", c); //输出11printf("%d\n", d); //输出10return 0;}
* : 间接访问操作符(解引用操作符)
(类型) : 强制类型转换
int main(){int a = (int)3.14; //括号中放希望强制转换的类型,一般不推荐使用printf("%d\n", a); //输出11return 0;}
如果觉得《鹏哥C语言 -3. 转义字符 注释 初识选择语句 初识循环语句 函数 操作符1》对你有帮助,请点赞、收藏,并留下你的观点哦!