#include<stdio.h>
#define SIZE 4
int main()
{
int test[2][2]={1,2,3,4};
printf("%10s %20p\n","test[0]",test[0]);
printf("%10s %20p\n","test[1]",test[1]);
printf("%10s %20p\n","&test[0][0]",&test[0][0]);
printf("%10s %20p\n","&test[0][1]",&test[0][1]);
printf("%10s %20p\n","&test[1][0]",&test[1][0]);
printf("%10s %20p\n","&test[1][1]",&test[1][1]);
printf("%10s %20p\n","test address",test);
printf("%10s %20p\n","*test",*test);
printf("%10s %20p\n","*(test+1)",*(test+1));
printf("%10s %20p\n","*test+1",*test+1);
printf("%10s %20p\n","*(test+1)+1",*(test+1)+1);
printf("%10s %20d\n","*(*(test+1)+1)",*(*(test+1)+1));
printf("%10s %20p\n","test+1 address ",test+1);//test[1] *(test+1)
//总结 直接对数组名操作 加减 是对应元素地址(一维数组)
//test+1 *(test+1)结果是一样的 因为一层解引用还是地址 表示的是test第二个元素的地址
//*test+1 解引用之后再+1表示的是test[0]+1 ,表示的是test[0]第一个元素地址
// test直接操作表示行,解引用之后表示列
}
c学习-多维数组指针使用
最新推荐文章于 2024-07-23 22:07:33 发布