C语言笔记

技术渣 2019年07月24日

此处记录笔者在学习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 输入输出字符

强制类型转换的优先级高于四则运算

!逻辑非

&&逻辑与

||逻辑或

因学习C语言的那段时间比较忙,后续笔记在纸上。