- int SMG[3]={7,8,9};
- SMG[0]=7; SMG[1]=8; SMG[2]=9;
- SMG 和 &SMG[0] 都代表了数组首元素的地址
首元素的地址是数组第一个元素的地址 即7的地址
*SMG=7 - 首元素的地址 +1 得到的是下一个元素的地址
例如:
SMG+1 代表了第二个元素的地址 即8的地址
*(SMG+1)=8=SMG[1];
SMG+2 代表了第三个元素的地址 即9的地址
*(SMG+2)=9; - &SMG是整个数组的首地址
- 首地址 +1 得到的是跳过整个数组的地址
- int x[ 10 ] ;
int *p;
p=x;
则 x[ i ] = *( p + i ) = *( x + i ) = p[ i ]
可以当成固定公式 即: x[ i ] = *( x + i )
注意:1. 数组名是常量 ,代表第一个元素的首地址,不可以进行加减运算 eg ; x++; 错误
2. 指针是变量,可以进行加减运算 eg : p++; 正确