C语言学习笔记

来源:互联网 发布:全民奇迹翅膀进阶数据 编辑:程序博客网 时间:2024/06/08 09:37

十六进制前面加0X或者0x

八进制前面加0 反斜线开始并加入单引号如’\141’

字符‘A’   “AB”  “A”(‘A’ ’\o’的组合)

%x 十六进制 (输出的十六进制为小写。如23f)

%#X 输出结果为0X23F。(可看出是16进制)

Return 终止函数

Break 终止循环和switch

 

若局部变量与全局变量的名字一样时,局部变量会屏蔽全局变量。

 

&&左边的表达式为假,右边的表达式不执行

||左边的表达式为真,右边的表达式不执行

Float和double都不能保证可以精确的 存储一个小数

算术>关系>逻辑>赋值

地址:内存单元的编号

 

指针的本质就是一个操作受限的非负整数。(不能加乘除,但是地址可以进行相减运算)

如果两个指针变量指向的是同一块连续空间的不同存储单元,

则这两个指针变量才可以相减

在多层循环中,break只能终止距离它最近的循环。

 

While((ch=getchar())!=’\n’)

continue;把垃圾数据清除。

 

printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。

 

(严格地讲,%lf在printf下是未定义的,但是很多系统可能会接受它。要确保可移植性,就要坚持使用%f。)

 

 

 

对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。

一个指针变量,无论它指向的变量占几个字节

该变量本身只占四个字节

 

 

補碼

負數轉二進制

-3→011(轉化為二進制)→100(取反)→101(末尾加1)不夠位數,左邊補1

-3是int類型,占4個字節,32位,所以前面要補29個1.

0的二進制全是0.

符号

名称

作用

意义

说明

<< 

左移位

将操作数的二进制位整体按照顺序向左移,右端空出的位补0,左端移出最高位以外的位丢失

a<<n,代表a的二进制位顺序左移n位(n为整数)

左移运算是与操作数的符号无关的

>> 

右移位

将操作数的二进制位整体按照顺序向右移,左端补0或补1,右端移出超出最低位被丢失

a>>n,代表a的二进制位顺序右移n位(n为整数)

 

右移运算与操作数的符号有关. 就VC++ 6.0而言:无符号数为“逻辑右移”,即左端空出位一律补0 ;有符号数为“算术右移”,即正数右移,空位补0 ,负数右移, 空位补1

0 0
原创粉丝点击