本文共 2765 字,大约阅读时间需要 9 分钟。
(创建于2017/8/14)
1.float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的
2.常用转义字符: \0 空字符 0 \t 水平制表,跳到下一个Tab位置 9 \r 回车,将当前位置移到本行的开头 13 \n 换行,将当前位置移到下一行的开头 10 ' 双撇号 34),"" 单撇号 39 3.逗号运算符(逗号运算的结合性是从左至右,完毕之后整个表达式的值是最后一个表达式的值。)#includeint main(){ int m=1,n=2; int a; a=(m+n,m-n); printf("a的值为%d,表达式的值为%d\n",a,a=(m+n,m-n)); a=m+n,m-n; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n)); a=m+n,m-n+a; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n+a)); printf(""); return 0; }运行结果a的值为-1,表达式的值为-1a的值为3,表达式的值为-1a的值为3,表达式的值为2
4.强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。 5.自增运算和自减运算(++/-- 同java) 自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。 x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1. x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。6.位运算
#include// 运行结果如下:(分别为取反,与,或,异或,右移与左移)int main(){ unsigned int A=0xb3,B=0x9a; printf("A=%x\n", A); printf("B=%x\n", B); printf("~A=%x\n",~A); printf("A&B=%x\n",A&B); printf("A|B=%x\n",A|B); printf("A^B=%x\n",A^B); A=27;B=28; printf("A<<1=%u\n",A<<1); printf("A>>1=%u\n",B>>1); return 0; }运行结果:A=b3B=9a~A=ffffff4cA&B=92A|B=bbA^B=29A<<1=54A>>1=14
7.有符号数和无符号数的区别
有符号,最高位是符号位,1代表负数,0代表正数无符号,最高位不是符号位,是数的一部分,无符号不可能是负数
8.char数据类型范围
char 占一个字节有符号:-128~127无符号:0~255
9.数值越界
char a = 127 + 2;打印a的值为-127,从补码的角度分析127+2 = 129 ,129转换为2进制是10000001,计算机是以补码存储数据的,所以这个2进制数是129的补码补码:1000 0001反码:1111 1110原码:1111 1111(最高位是符号为) = -127unsigned char b = 255 + 2;257转换位二进制0001 0000 0001因为是无符号数,所以只取后8位,得到的是1
10.sizeof
sizeof不是函数,只是一个运算符,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位位字节sizeof的返回值位size_tsize_t类型在32位操作系统下是unsigned int,是一个无符号整数
11.整型变量输入输出
short 短整型 占2个字节int 整型 占4个字节long 长整形 windows 占4个字节 Linux占4个字节(32位),8个字节(64位)long long 8个字节整型数据在内存中占用的字节数与所选的操作系统有关,虽然C语言标准中没有明确规定整型数据的长度,但是long类型整数的长度不能短于int,short类型的长度不能长于int当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转换,但是当一个大的数据类型赋值给一个小的数据类型,可能会丢失高位打印格式 含义%d 输出一个有符号的十进制int类型%o(字母o) 输出8进制int类型%x 输出16进制int类型,字母小写%X 输出16进制int类型,字母大写%u 输出10进制无符号数
12.字符型
字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的ADCII编码放到变量的存储单元中,char的本质就是一个字节大小的整型,内存中没有字符,只有数字,一个数字对应一个字符,这种规则就是ASCII,使用字符或数字给字符变量赋值是一样的char ch = 'a' char ch = 97 等价小写字母比大小字母的字节大32小写转大写 'a'-32大写转小写 'A'+32
13.转义字符
char a = 'abc' //原则上''内部只有一个字符,转移字符除外,这种写法不合适,会有警报转义字符,由反斜杠组成的多个字符"\"
14.浮点型:float double
实型变量也称为浮点型变量,存储小数数值单精度浮点数float: 占用空间4个字节,有效存储7位双精度浮点型:占用8个字节,有效存储15~16默认是double,加上f结尾是float,3.14是double类型,3.14f是float
15.类型限定符
extern : 声明一个变量,extern生命的变量没有建立存储空间 extern int aconst : 定义一个常量,值不能修改volatile :放置编译器优化代码register : 定义寄存器变量,提高效率,register是建议型的指令,而不是命令型的指令,如果CPU由空闲寄存器,那么register就生效,如果没有空闲寄存器,就无效
转载地址:http://ywwsx.baihongyu.com/