指针的疑惑!
多维数组和指针的内容 a[n][n]为二维数组!!&*a[i]为什么和a[i]等价??
*p是怎样运算的?((*p)操作是这样一种运算,返回p 的值作为地址的那个空间的取值)不太理解这句话的意思!
&p又是怎样运算的??
解释的越详细越好!
#include <stdio.h> int main() { int i,j; long test[2][3]={0}; char* a[2][3]={"aaa","bbb","ccc","111","222","333"}; //首先确定变量 a 的地址 printf("变量a的首地址=0x%X\n",&a); //获取变量 a 所存放的6个指针元素的地址 for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("变量a的第%d个元素的地址=0x%X\n",i*3+j+1,&a[i][j]); } } //下面看一看变量 a 这6个元素里面存放的都是啥 注意 上面是地址 这里是数据 //同时保存这个元素,以备下面测试用 for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("变量a的第%d个元素=0x%X\n",i*3+j+1,a[i][j]); test[i][j]=(long)a[i][j]; //对字符的具体位置(指针)进行保存 } } //下面,我们根据新保存的数据进行寻址,输出字符串 for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf("变量a的第%d个元素所指向的字符串是%s\n",i*3+j+1,test[i][j]); } } return 0; } /* 以下是我在本机上的测试案例 当然具体数据肯定不一致,内存瞬息变化万千 变量a的首地址=0x12FF10 变量a的第1个元素的地址=0x12FF10 变量a的第2个元素的地址=0x12FF14 变量a的第3个元素的地址=0x12FF18 变量a的第4个元素的地址=0x12FF1C 变量a的第5个元素的地址=0x12FF20 变量a的第6个元素的地址=0x12FF24 变量a的第1个元素=0x4157D4 变量a的第2个元素=0x4157D0 变量a的第3个元素=0x4157CC 变量a的第4个元素=0x4157C8 变量a的第5个元素=0x4157C4 变量a的第6个元素=0x4157C0 变量a的第1个元素所指向的字符串是aaa 变量a的第2个元素所指向的字符串是bbb 变量a的第3个元素所指向的字符串是ccc 变量a的第4个元素所指向的字符串是111 变量a的第5个元素所指向的字符串是222 变量a的第6个元素所指向的字符串是333 */