c++关于typedef的?

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:03:49
int ia[3][4];
typedef int int_array[4];
int_array *ip = ia;

*ip表示什么?
谢谢。

这个问题和下面很类似
int (*p)[6];
int a[3][6];
p=a;
p是一个指向大小为6的数组(一个二维数组名也是)于是可以进行这样的赋值p=a;而int *ip=a;则是错误的因为他们的类型不同
针对你的问题typedef int int_array[4]; 定义int_array为长度为4的数组类型 那么int_array *ip = ia就是定义一个指向长度为4的数组的指针 理解不?

你不是用那个typedef定义一个数据结构吗?*ip表示指向这个数据结构的指针.也就是一个指向一个数组(一维的,四个数的)的指针.
int_array *ip = ia; 相当于
int *(ip[4])=ia
然后ip[0]就指向a[0][0]的地址了.ip+1就指向a[1][0]的地址了.

表示一个指针,指向ia[0]