数组
1.数组越界在程序的什么阶段发生错误?
定义数组啊a[10],使用for(int i=0;i<=10;i++)循环进赋值,在程序的编译和连接阶段不会发生错误,在程序运行时会出错,这就是典型的数组越界错误。
2.数组元素的存储问题
数组元素在内存中是顺序、连续存储的。也就意味着一个数组在内存中占用的是一段连续的存储单元,并且在逻辑上相邻的两个元素在物理地址上也是相邻的。如char a[10],其中a[1]与a[2]的地址分别为0x3000,0x3001。
3.多维数组的存放方式
存放方式依然采用顺序存放的方式,可以将下标看成一个计数器,右边为低位,左边为高位,每位都在上下界之间变化。
下界=0;上界=下标表达式的值减1。
如t[2][2][2]----->t[0][0][0],t[0][0][1],t[0][1][0],t[0][1][1],t[1][0][0],t[1][0][1],t[1][1][0],t[1][1][1]
4.数组作为函数参数
使用数组名传递数据时,传递的是地址。为保持实参和形参匹配,实参的元素个数应该多余或等于形参的元素个数。在被调函数中对形参数组元素值进行改变,主调函数中实参素组的相应元素值也会改变。