1.C语言只有一维数组,而且数组的大小必须在编译器就作为一个常数确定下来。
2.任何一个数组下标进行运算的,实际上都是通过指针进行。
3.int calendar[12][31] calendar是一个数组,该数组包含12个数组类型的元素,其中每个元素都是一个拥有31个整型元素的数组。
4.除了数组名a 被用作运算符 sizeof 的参数这一情形,在其他所有的情形中数组名都代表指向数组的下标为0的元素指针。
5.int (*ap) [31]声明了*ap是一个拥有31个整型元素的数组,则ap就是一个指向这样数组的指针。
6.库函数 malloc ,该函数接受一个整数,然后分配容纳同样数目的字符的一块内存。
7.C语言中会自动地将作为参数的数组声明转换为相应的指针声明。
8.复制指针并不同时复制指针所指向的数据。
9.当常数0赋值给一个指针变量时,绝对不能被解引用。
10.重复执行表达式 --n>=0只是进行n次迭代的一种方法。
11.数组中实际不存在的”溢界“元素的地址位于数组所占内存之后,这个地址可以进行赋值和比较。当然如果要引用该元素,则就是非法的了。
12,当两个操作数都是有符号数时,溢出就有可能发生,一种正确的方式是将a和b都强制转换成无符号数。
if((unsigned)+(unsigned)b>INT_MAX)
也可以写成
if (a>INT_MAX-b)
13.为main函数提供返回值
0代表成功,返回非0代表程序执行失败。
14.逗号运算符,首先对左侧操作数求值,然后该值被丢弃,再对右侧操作数求值。
注意,分隔函数参数的逗号非逗号运算符。
15.避免栏杆错误的两个通用原则 首先考虑简单情况下的特例,然后将得到的结果外推,仔细计算边界,绝不掉以轻心。
16.下界是入界点,包含在取值范围中,而上界是出界点,不包含在取值范围中。
如果取值范围为空,则上界等于下界。
17.缓冲区中已经存放的字符
bufptr-buffer
未占用的字符 N-(bufptr-buffer)