21年3月27日C语言概述(四)
1. %的重要性
2. 逗号的玩法
3. 指针概述
4. 指针与地址
5. 小端存放
6. sizeof的玩法
7.最大公约数与辗转相除法
1. %的重要性
%可以形成局部循环,这个思想很重要。特别是在后期的哈希里面
通过循环,使A~Z的字母每次向后挪一个
2. 逗号的玩法
1. 逗号前后的语句都会执行,但是涉及到赋值判断等操作,看的是最后一个逗号右边的语句 (前提是有括号)
2. 逗号的优先级最低 最低这里体现了逗号运算符的优先级是最低的,先赋值了,再执行20+c,所以a的值是13
这里体现了逗号前后的语句都会执行,但由于逗号的优先级最低,所以赋值不是++c
这里体现了因为加了括号,所以逗号执行在赋值的等于号之前。所以赋值的是逗号最右边的
判断的体现
3. 指针概述
4. 指针与地址
1. 指针的大小只有4和8,不管是int指针、char指针、float指针
在32位系统(x86)里面是4字节 >> 32位操作系统, 是因为CPU所能处理的数据的最大位数是32位。而一个字节刚好是8位 (32/8=4),因此是4个字节
在64位系统(x64)里面是8字节 >> 同上,CPU所能处理的数据的最大位数是64位。64/8=8,所以是8字节。
2. 指针存放变量的地址,只存放变量的首地址。
5. 小端存放
1. 地址只有高低之分,没有大小之分。
2. 10的16进制是 a ,这里的表现为 0000 000a (一个int是4字节,一字节是8位2进制,2位16进制)
8>>9>>A>>B 在16进制中递增,0x....8是低地址位,0x....B是高地址位。
结合 0000 000a 的存储,就能理解 低地址存放低位,高地址存放高位
6. sizeof的玩法
1. sizeof 发生在编译时期,a++这类对变量的操作发正在链接时期
2. sizeof的返回值是unsigned类型,即无符号整型
为什么a没有自加成功?
1. 10按照16进制以0A存入变量a
2. 变量a得到无符号整型4 (你会发现++a没有了)
因为sizeof发生在编译阶段,只对类型操纵,得到类型的大小。该操作过后,sizeof()里面的东西就没有了
++a发生在链接过程,这个操作符号已经不存在了
7.最大公约数与辗转相除法