1.一个越界下标导致的后果?
程序仍能继续运行;程序会异常终止或崩溃;程序仍能继续运行但无法得到正确结果;其他情况。
2.可以使用数组后面第一个元素的地址吗?
可以使用但是不能查看该地址中的值。
3.数组作为参数传递给函数时,可以通过sizeof得到数组的大小吗?
可以,当把数组作为函数的参数时,无法在程序运行时通过数组参数本身告诉函数该数组的大小,因为函数的数组参数相当于指向该数组第一个元素的指针。
4.可以把另外一个地址赋给一个数组名吗?
不可以,数组名不能被放在赋值运算符的左边(他不是一个左值,更不是一个可修改的左值),一个数组是一个对象,而他的数组名就是指向这个对象的第一个元素的指针。
5.array_name和&array_name有什么不同?
前者是指向数组中第一个元素的指针,后者是指向整个数组的指针。
6.指针是什么?
系统为指针分配内存空间;指针有自己的地址;指针能够存值,但这个值比较特殊–地址。
7.最多可以使用几层指针?
如果在说明一个指针最多可以包含几层间接引用,答案是至少可以有12层。
8.NULL总是被定义为0吗?
NULL不是被定义为0,是被定义为“(void *)0”,这两种值几乎是相同的。当程序中需要一个指针时(尽管编译程序并不是总能指示什么时候需要一个指针),一个纯粹的0或者一个void指针都能自动被转换成所需的任何类型的指针。