山东外贸建站网络公关公司联系方式
C++之指针和数组
指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。但是,指针和数组并不能完全互换。
#include <iostream>using namespace std;
const int MAX = 3;int main() {int a[MAX] = {10, 100, 200};for (int i = 0; i < MAX; ++i) {//数组a首地址指向的值赋值为i*a = i;//数组a[2]地址指向的值赋值为i*(a + 2) = i;//错误写法a++cout << a[i] << endl;}return 0;
}
输出:
0
100
2
把指针运算符 * 应用到 a上是完全可以的,但修改a的地址是非法的。这是因为a是一个指向数组开头的常量,不能作为左值。
由于一个数组名对应一个指针常量,只要不改变数组的地址,仍然可以用指针形式的表达式。一个有效的语句,把a[2] 赋值为i即是合法的。