---------------------- <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>、期待与您交流! ----------------------
本文介绍了C语言编程中需要注意的常见问题,包括返回值类型的默认设置、函数声明与实现的重要性、字符编码、二进制与十六进制表示法、内存分配方式、逻辑运算符的使用、位运算的操作细节、字符串与字符的正确使用方法、数组操作技巧等内容。
2693

被折叠的 条评论
为什么被折叠?



