出题思路(分析):
C++11新标准为数组引入了名为begin和end的两个函数,这两个函数与容器中的中的同名成员功能类似,利用begin和end可以方便地定位到数组的边界。令指针在数组的元素间移动,解引用指针即可得到当前所指的元素值。
下看
代码展示:
#include<iostream>
using namespace std;
int main() {
const int sz = 10;//定义好数组的长度
int a[sz], i = 0;
//这里用一个for循环给数组赋值
for (i = 0; i < 10; i++) {
a[i] = i;
}
cout << "刚开始的数组内容是:" << endl;
//通过范围for循环输出数组的全部元素
for (auto val : a)
cout << val << " ";
cout << endl;
int* p = begin(a);//令p指向数组首元素
while (p != end(a)) {
*p = 0; //修改p所指的元素的值
p++; //p++,然后就是p向后移动一位,然后循环到最后一位
}
cout << "修改后的数组内容是:" << endl;
//通过范围for循环输出数组的全部元素
for (auto val : a) {
cout << val << " ";
}
cout << endl;
return 0;
}
#include<iostream>
using namespace std;
int main() {
const int sz = 10;//定义好数组的长度
int a[sz], i = 0;
//这里用一个for循环给数组赋值
for (i = 0; i < 10; i++) {
a[i] = i;
}
cout << "刚开始的数组内容是:" << endl;
//通过范围for循环输出数组的全部元素
for (auto val : a)
cout << val << " ";
cout << endl;
int* p = begin(a);//令p指向数组首元素
while (p != end(a)) {
*p = 0; //修改p所指的元素的值
p++; //p++,然后就是p向后移动一位,然后循环到最后一位
}
cout << "修改后的数组内容是:" << endl;
//通过范围for循环输出数组的全部元素
for (auto val : a) {
cout << val << " ";
}
cout << endl;
return 0;
}
运行结果展示: