【指针】【数组】【定义】【疑问】
eg.
int main()
{
int (*ip1)[4];
int *ip2[4];
int ary1[4]={0,1,2,3};//将ary1[4]改成5就编译通不过了 ,因为只能指向4个元素的数组
ip1 = &ary1;
printf("%p,%p,%p\n",ip1,ary1,&ary1);
printf("%p,%p,%p,%p,0x%x\n",ip1[0],ip1[1],ip1[2],ip1[3],sizeof(ary1));//内存间隔 sizeof(ary1)
printf("%d,%d,%d,%d\n",(*ip1)[0],(*ip1)[1],(*ip1)[2],(*ip1)[3]);
int a=3,b=2,c=4,d=6;
ip2[0]=&a;
ip2[1]=&b;
ip2[2]=&c;
ip2[3]=&d;
printf("%d,%d,%d,%d\n",*(ip2[0]),*(ip2[1]),*(ip2[2]),*(ip2[3]));//ip2数组保存的是指针,所以可以这么整
return 0;
}
//通过简单的东西延伸出去,关键是理解,不清楚的东西就用printf出来
//这是编程者的最基本的调试办法,上班第一天,就有前辈这么教我
第二个,[]优先级高,先变成p[4]数组,然后与*结合,变成4行n列数组
对于中文叫法,我也老是混乱,晕