---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、
<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
C语言较为常见的注意2
1、返回值不写默认就是int而不是void,void的返回值是return;并且有返回值的可以不用不用写,编译器不会报错,只是警告。
2、如果只有函数的声明,没有实现,则函数会在链接(检测函数,变量等有没有定义)是报错,但编译能通过。
3、一个中文占用3个字节
4、二进制的表示:int a = 0b1010;注意前缀是0b,八进制的前缀:0(%o) 十六进制前缀:0x(%x) 十进制:%d/%i
5、int 分配4个字节,内存存储是从高位到低位存储
6、查看一个类型占用多少个字节,可以用int a = sizeof(类型);
7、逻辑运算符的过程:
符号 | |(或) | &(与) | ^(异或) | ~(取反) |
操作 数 | 1001 | 1001 | 1001 | 0101 |
0101 | 0101 | 0101 | ||
结果 | 1101 | 0001 | 1100 | 1010 |
8、左移 a<<n(低位补0)向左移动n位 即:a* 2的n次方(危害:可能将符号位移调)。右移a>>n(高位补0) 向右移动n位
即:a/ 2的n次方,这样运算效率更高。
9、利用异或实现两个变量的值交换:
1. a=a^b; 过程 利用了a^a=0,以及异或的交换律
2. b=a^b;—————> 第2步可写成b=a^b^b=a^0=a
3. a=a^b; 第3步也就可以变成a=a^b^a=a^a^b=b
10、单引号只能括住一个字节字符,像 ’我’ 是错误的,因为中文占又3个字节
11、char可以作为整数来用,即可以在switch的条件中用它,同时在case中用同值的字符与整数会报错。
12、在对数组赋值时,要想指定的位置赋值可以这样int a[50] = {[2] = 12;[22] =21}还有数组只能在定义的时候初始化,但是此时数
组大小只能通过常量或常量表达式(例如:’A’-34就是一个常量表达式)来声明,如果用变量会报错即:int a[num] = {12,23,4,4}是错误的。
13、怎样求一个数组的长度sizeof(数组名) / sizeof(数据类型),怎样打印数组某个元素a[i]的地址:printf(“%p”,&a[i]),数组在内存是从低到高存储。
14、数组在作为形参时,可以省略大小,如函数void max(data[]){…}这样写是对的,并且它是地址传递,即通过函数可以修改数组元素的值,
数组在做函数参数传递时,会把它做一个指针使用,即data相当于一个指针,指针占8个字节(在64位的处理器的下)
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、
<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------