能力值:
( LV4,RANK:50 )
|
-
-
2 楼
看似很变态的用法,我没有这样用过……
根据你屏幕打印的结果及我的经验分析:
1、int* a[3]是声明定义一个数组a,它具有3个int*成员;
2、 int (*b)[3]是声明定义一个指向一个结构的指针b,它指向包含3个int成员的结构。
很奇怪的语法。根据我的经验,int (*b)()一般是定义函数指针的用法,不过你的却没有参数括对。奇怪。。。。BT
|
能力值:
( LV13,RANK:370 )
|
-
-
3 楼
int *a[3] ; //a是一个指针数组
int (*b)[3]; //b是一个指向每行具有三个int类型元素的数组的指针
printf("%d,%d\n",sizeof(a),sizeof(b));
//sizeof(a)得到是指针数组a的大小3*sizeof(int)
//sizeof(b)指到是指针b的大小4字节即32位指针
printf("%d,%d\n",sizeof(*a),sizeof(*b));
//sizeof(*a)得到是指针数组a中第一个元素的大小4字节
//sizeof(*b)得到的是b所指向的那一行数组的大小3*sizeof(int)
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
一个是保存指针的数组
一个是指向数组的指针
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
谢谢楼上几位的讲解,终于知道他们怎么用了。
|
|
|