此处记录笔者在学习C语言上遇到的坑以及相关的学习笔记,留备日后避坑。欢迎志同道合的朋友来和我一起交流学习C语言。新手上路,高手轻喷…
一、循环控制
1.嵌套中跳出循环
1.1 break接力
int exit =0; //在前面声明变量
exit=1;
break; //这两句放在最开始结束处
if ( exit ) break; //表示exit值非0,跳出循环体,放在外层各处嵌套循环中
1.2 goto out
goto out; //放在最先需要跳出处
out: //放在需要跳转到的地方,注意冒号,表示地址
goto虽好,但最好只运用于此处情况。多了容易出错,破坏程序的结构性。
2.补码
2.1 -1的补码是1111 1111
-1+1=0 >> 1111 1111 + 0000 0001 = 1 0000 0000
0 -1=-1 >> 1 0000 0000 - 0000 0001 = 1111 1111
1111 1111被当作纯二进制看待时,是255,被当作补码看待时,是-1
同理,对于-a,其补码就是0-a,实际是2^n-a,n是这种类型的位数
补码的意义就是拿补码和原码可以加出一个溢出的零,即1 0000 0000
杂碎
%.10f //输出小数点后10位
输入:%f --float %lf --double
输出:%f --正常输出 %e --以科学计数法输出
printf输出inf表示超过范围的浮点数:正负∞
printf输出nan表示不存在的浮点数
带小数点的字面量是double,float需要用f后缀表明身份
%c 输入输出字符
强制类型转换的优先级高于四则运算
!逻辑非
&&逻辑与
||逻辑或