数组、指针和字符串(一)------C++学习笔记

时间:2022-01-17 21:42:30

数组

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.数组作为函数参数

使用数组名传递数据时,传递的是地址。为保持实参和形参匹配,实参的元素个数应该多余或等于形参的元素个数。在被调函数中对形参数组元素值进行改变,主调函数中实参素组的相应元素值也会改变。