数组与指针
1 使用数组时一般会转换为指针
ia是一个int*类型的指针常量
ia和&ia[0]都表示数组第一个元素的地址
可以使用指针对数组进行访问
int a[10];
//指针访问数组元素
for(int *p = a; p < a+10; p++)
cout << p;
2 一维数组元素在内存中按下标顺序依次存放
一维数组a[n]的元素a[i]在内存中地址是a+i。
多维数组在内存中按行序存储
二维数组a[m][n]的元素a[i][j] 在内存中的地址是a+(in+j)
使用指针访问数组时需要控制指针的范围,确保指针指向数组的元素
3 库函数begin()和end()
让指针在数组上的使用更简单更安全
在头文件中定义
用法
begin(数组名)
返回指向数组第一个元素的指针
end(数组名)
返回指向数组最后一个元素的下一个位置的指针
4
//在数组arr 中查找第一个负数:
int *pb = begin(arr), *pe = end(arr);
while(pb != pe && *pb >= 0)
++pb;
//逐个输出数组元素的循环
for(int p = begin(arr); p!= end(arr); ++p)
cout << *p << “\t”;