C语言程序设计初步知识总结
一、标识符
用户标识符的定义规则:(1)由数字、字母和下划线组成,不能有特殊符号;(2)以字母和下划线开头;(3)不能使用关键字;(4)区分大小写
二、常量和变量
1、常量
符号常量:#include 标识符 数值(标识符一般用大写)
2、变量
先定义后使用
3、整型
整型常量:十进制、八进制(0)和十六进制(ox),后缀加L代表是长整型,后缀加u代表是无符号数,后缀加LU或者lu代表是无符号长整型数据
int、long、short、unsigned、unsigned short和unsigned long
4 4 2 4 2 4
存储:以二进制形式存储(有符号数最高位为符号位,0为正数,1代表负数,无符号数所有位数全部为有效位)
有符号数中的负数:补码形式(反码+1)(已有一个负数的补码形式,将其转换为十进制数:将补码包含符号位按位取反,写出相应的十进制数,加负号减1即可)
4、实型
实型常量:小数形式(必须要有小数点)、指数形式(e的前面必须要有数字,e的后面必须是整数);一般默认为double,后缀加f代表是float
实型变量:
float double
4 8
存储:以指数形式存储,数符、小数部分、阶符、阶数
备注:在计算机内部不能精确存储
5、字符型数据
字符型常量:必须用单引号(‘’)括起来,只有一个字符
字符串常量:必须用双引号(“”)括起来,系统会自动加一个\0作为结束符号
存储:占用1一个字节,存放ASCII码值
字符型变量: char 1
转义字符常量:以\开头,三位八进制数的表示\ddd,两位十六进制数的表示\xhh
备注:字符型数据可以和整型数据进行算术运算
输入输出函数:putchar(字符变量或者常量);getchar()有返回值,c=getchar()
三、算术运算符
1、%运算:要求操作数必须为整数
2、优先级别:++、--,单目的+和-,*、/、%,双目的+和-
3、i++和++i的区别
4、类型的转换
(1)自动转换
(2)赋值转换
(3)强制转换 (类型名)变量名
四、赋值表达式
赋值语句:赋值表达式加分号
赋值表达式:赋值运算符和操作数
“=”是赋值运算符,双目,左边:变量,右边:常量、变量、表达式,结合性是从右往左
复合赋值表达式
五、逗号运算符和逗号表达式
1、优先级别只比赋值运算高
2、逗号表达式的值是最后一个表达式的值,结合性是从左向右的
六、逻辑表达式和关系表达式
1、运算符
2、表达式
3、&&和||的屏蔽问题
七、位运算
1、按位取反:
a<<=2; a=a<<2;
~0115 ~01001101=10110010
2、左移
char a=6,b;
b=a<<2;
a=00000110 6
b=00011000 24=6*4=a*22
a=01000000 64
b=00000000 0
左移:当移出去的高位中没有1的时候,相当于给原数乘以2的n次方,n=移位的位数
3、右移
short int a=-8,b;
b=a>>2;
a=1111111111111000 -8
b=1111111111111110 -2
b=b>>1;
b=1111111111111111 -1
b=b>>1;
b=1111111111111111 -1
右移:当移出去的低位中没有1的时候,相当于给原数除以2的n次方,n=移位的位数
4、按位与
任何位上的二进制数,只要和0相与,结果就为0,也就是“清零”;如果和1相与,结果就不变
(12)00001100&(10)00001010=00001000
对11101101保留第五和第六位数,使用的是00001100和原数进行相与操作
5、按位或
任何位上的二进制数,只要和1相或,结果就为1,也就是“置1”;如果和0相或,结果就不变
(12)00001100|(10)00001010=00001110
6、按位异或
任何位上的二进制数,只要和0相异或,结果不变;如果和1相异或,结果就翻转(取反)
01010011^11000011=10010000
八、优先级别
(1)括号
(2)逻辑“非”(!)
(3)算术运算符
(4)关系运算符
(5)逻辑“与”(&&)
(6)逻辑“或”(||)
(7)逗号表达式
(8)赋值表达式