1)指针的数组表示
在C++内部,用指针来处理数组。
C++编译器把 数组名[下标] 解释为 *(数组首地址+下标)
C++编译器把 地址[下标] 解释为 *(地址+下标)
#include "iostream" using namespace std; void test() { int a[5] = {1, 2, 3, 4, 5}; //用数组表示法操作数组 for (int i = 0; i < 5; i++) { cout << "a[" << i << "]=" << a[i] << endl; } //用指针表示法操作数组 int *p = a; for (int i = 0; i < 5; i++) { //数组名[下标] 解释为 *(数组首地址+下标) cout << "*(p+" << i << ")value is:" << *(p + i) << endl; //地址[下标] 解释为 *(地址+下标) cout << "p[" << i << "] value is:" << p[i] << endl; } } int main() { test(); return 0; } a[0]=1 a[1]=2 a[2]=3 a[3]=4 a[4]=5 *(p+0)value is:1 p[0] value is:1 *(p+1)value is:2 p[1] value is:2 *(p+2)value is:3 p[2] value is:3 *(p+3)value is:4 p[3] value is:4 *(p+4)value is:5 p[4] value is:5
可以这么理解
int a[5] = {1, 2, 3, 4, 5};这里的a就是个地址,能都a[i]这样访问。
这样可以的话,那p是地址