1.字符数组是一个常量,不能进行++等操作
2.指针变量之间可以运用关系运算符表示他们之间的关系。
3.指针变量指向的是地址,是常量,不能将地址指向另一个地址:一个指针变量p可以指向自身是错误的。
4.*不是间接运算符,是指针变量的说明符。
5.取变量的地址赋值给同类型的指针变量。未赋初值的指针变量自动赋任意地址值。
6.*ptr[10],定义一个指针数组,数组大小位10,数组中每个元素都是指向整型变量的指针。(*ptr)[10] 定义指向具有十个整型元素的一维数组指针。
7.strlen不包含字符串结束符
8.不能给指针变量赋整数。
9.scanf接收字符串时,遇到空格或回车就结束。
10.二维数组是连续存放的,遇到字符串结束标志“、0
结束,没有则一直输出
11.二维字符数组常用来存放字符串, 二维字符数组每一行可以看做一维字符数组, 即二维字符数组的每一行可以存放一个字符串。
12.fscanf只能从文本文件中输入数据到内存,而不是向文本文件中写入数据。EOF只能作为文本文件的结束标志默认值为-1.
13.fwrite用于输出数据到指定的二进制文件中,fputc用于把字符输入到指定文件中。fprintf用于按格式将数据输出到指定文本文件中。
eof如果达到文件末尾,则eof为非零值,否则为0;
14.定义字符串的指针,定义后最后一个字符一定会有一个'\0'
15.数组名是指针常量,不能改变其值。
16.可以加入一个正整数指定输入数据所占的宽度,但不可以对实数指定小数位的宽度
17.scanf("%d%d%f",&a,&b);多余的%f不起作用是错的,读入第三个数据后,将其放入缓冲区,寻找对应的应该存放的地址,没有找到,程序会发生错误而中断。
18.输入scanf不能用精度控制
19.strcmp比较的是字母的大小。
20.a=b是使得a和b都指向原b所指向的地址。
21.指针变量加几 就是指针变量的类型
22.char *ps="hello bit";本质上是吧“hello bit”这个字符串的首地址存放在ps中。常量字符串不能被改变。
23.字符串处理函数strcat连接字符串时遇到'\0'取消,只保留一个'\0'
24.c语言源程序后缀名为.c,.目标文件的扩展文件为.obj,可执行文件扩展名是.exe.
25.gets(ss)读入一串字符串,直到遇到回车,读入的数据从数组的起始位置覆盖
26.指向同一内存单元时,两者的数据相等。
27.无符号整数的取值范围是0-255,所以K永远大于0。
28.%5.3s 输出占5列,但只取字符串中左端3个字符。这3个字符输出在5列的右侧,左补空格。
29.float、double都不能用于switch语句。字符串也不能用于switch语句。
30.右值可以是一个常量,变量,表达式,左值必须是一个已知的变量.
31.空指针是一个特殊的指针值。 空指针是指可以确保没有指向任何一个对象的指针。通常使用宏定义NULL来表示空指针常量值。NULL就代表系统的0地址单元。
单目运算符、三目运算符和赋值运算符的结合性是从右到左
32.宏定义不是c语句,末尾不需要有分号。
33.L只能用来修饰整数 ,不能用来修饰小数,U表示无符号类型只能用来表示正整数
34.预处理是在程序编译之前进行的。
35.c语言程序的模块化通过函数来实现。
36.C语言属于高级语言,用高级语言编写的程序成为源程序。
37.&只能对变量取地址,不能对常量取地址。