首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

typedef int int_arr[4];解决办法

2012-04-19 
typedef int int_arr[4]有如下定义:typedef int int_arr[4]int_arr array 相当于:int array[4]那么这

typedef int int_arr[4];
有如下定义:
typedef int int_arr[4];

int_arr array; 相当于:int array[4];

那么这样定义怎么理解:
int_arr *pia; 相当于:int *pia[4];
还是相当于:int (*pia)[4];
还是相当于:int * *pia;

怎么理解。谢谢。。


[解决办法]
相当于 int (*pia)[4]; 这个
从内往外读
pia 是一个指针 指向 类型int[4] 也就是int_arr
[解决办法]
相当于int (*pia)[4];
这样理解吧:有一种类型叫整型,用int来表示。那么 int *p; p就是一个指向整型int的指针。
现在又一种类型叫int[4],用int_arr表示。那么int_arr *pia; pia就表示一个指向int[4]的指针。
这样的话,应该比较容易理解。

下面是一些测试
typedef int int_arr[4];
int_arr *pia;

int a[4];
pia = &a;
上面代码能编译通过。说明pia确实为int[4]的一个指针。



typedef int int_arr[4];
int_arr *pia;

int *p;
pia = &p;
就编译不通过。在VC6.0里面,提示的错误为:
“ error C2440: '=' : cannot convert from 'int ** ' to 'int (*)[4]' ”

热点排行