|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main() {
- int i,j,a[3][3],*p;
- for(i=0;i<3;i++)
- for(j=0;j<3;j++)a[i][j]=1+j+i*3;
- p=&a[1][1];
- while(j)
- {
- printf("%d",p[j]);
- j--;
- }
- return 0;
- }
复制代码
这个打印输出为什么是876呀
本帖最后由 jackz007 于 2022-3-11 21:12 编辑
- #include <stdio.h>
- int main() {
- int i,j,a[3][3],*p;
- for(i=0;i<3;i++)
- for(j=0;j<3;j++)a[i][j]=1+j+i*3;
- p=&a[1][1]; // p 指向 a[1][1]
- while(j) // j 的初始值为 3
- {
- printf("%d",p[j]); // 打印p[3],p[2],p[1] 的值
- j--;
- }
- return 0;
- }
复制代码
二维数组 a 的内容是
- 1 , 2 , 3
- 4 , 5 , 6
- 7 , 8 , 9
复制代码
如果把这个二维数组串起来看就是一维数组
- 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
复制代码
p 指向 a[1][1],a[1][1] 的值是 5,也就是 p[0] = 5,那么,p[3]、p[2]、p[1] 的值自然就是 8、7、6 了。
|
|