1.数组名不能自加。
因为数组名实际上是一个指针,指向数组的第一个元素的地址。数组名在编译器中被视为常量,它的值是固定的,不能改变。
要访问数组的不同元素,应该使用数组名加上偏移量的方式来访问。
2.共用体只有最后一次赋值的数据是有效的。
3.正数的反码、补码和原码相同,负数的反码是原码除了符号之外全部取反,补码是反码+1。
4.赋值号的左边只能是单个变量,不能是表达式或常量等。
如:k=m*n=1 是错误的
5.标识符
6.三种基本结构:顺序,循环,选择
7. C 语言中的常量是在程序编译时就已经确定并存储在内存中的值。C 语言中的常量有以下几种类型:
整型常量:整型常量可以是十进制、八进制或十六进制。例如:123、0123、0x123。
浮点型常量:浮点型常量可以是十进制小数或科学计数法表示的小数。例如:3.14、6.022e23。
注意可以省略0(0.4写成.4,0.7写成.7) 科学计数法(e前e后必有数,e后是整数)
字符常量:字符常量是用单引号括起来的单个字符。例如:‘a’、‘1’。
字符串常量:字符串常量是用双引号括起来的一串字符。例如:“hello”、“goodbye”。
布尔常量:布尔常量只有两种取值,真(true)和假(false)。
空常量:空常量是一种特殊的常量,表示没有
8.sacnf,printf输出格式
(1)printf
%2d 表示输出2位整型数, 不够2位右对齐。
printf("%2d\n",2010);//输出2010
printf("%3d\n",1);//输出 1
%1.3f 表示小数位为3(四舍五入), 整数位为1(注意scanf不能指定小数个数)
printf("%1.3f\n",123.2246666666); //输出123.225
%8s表示输出8个字符的字符串, 不够8个字符右对齐。如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。
(2)scanf
9. 模块化不能提高程序运行效率
10. .c是源文件 .obj是目标文件 .exe是可执行文件
11. 八进制是以0开头的数字(032=26)十六进制是以0x开头的数字(0x16=22)
12.注释是不可以嵌套的
13. %hd,%ld 读取一个十进制整数,并分别赋值给short,long类型
14. #include<stdio.h>,#define属于编译预处理命令行,不属于C语言
15.关系运算符>赋值运算符
16. C语言只支持八进制,十进制,十六进制的数,不支持二进制的数。
17. C语言可以没有输入,但一定要有输出。
18. 数组作为函数参数
(1)传入的是地址,所以不能用
sizeof(array)/sizeof(array[0])
计算数组的长度,而应该独立计算。
(2)可以不写数组的长度,只写array[]
19. 二维数组可以连续赋值,如
int a[2][4]={5,8,3,45,76,-4,12,82};printf("%d",a[1][2]);
20. 短路现象:C语言的逻辑表达式在特定情况下会产生“短路”现象。若x=-1,y=-1,有如下逻辑表达式:x++&&y++,x==0,则y的值不会进行y++的运算。
21.strcmp(a,b)不是比长度,比的是每一位的ASCII值。
比如:”ABC“和"ABAD",返回的是1,因为strcmp函数是通过比较两个字符串首字母的ascll码值来排序。ascll码值大的,自然就大一点。如果首字母相同,就比较后一位,以此类推,不是比较ASCII码的总值。