2 aiyoushang521 aiyoushang521 于 2013.05.18 20:57 提问

typedef int a[10];怎么解释?

typedef int a[10];

a b[10]; 为什么分配400个字节的空间?

int a[10];为什么分配了40个字节的空间?

问题:应该怎么解释typedef的这种行为呢?而如果是define a int[10];以上定义则报错?求助!!!

2个回答

franzhong
franzhong   2013.05.18 22:58
已采纳

使用a定义一个b数组的结果等同于
int b[10][10];//多占了10倍空间就理所当然了
不信你在你的代码上添加如下试试

 typedef int a[10];
 a b[10];   
 b[0][0] = 1;//二维
 cout<<b[0][0]<<endl;//1

而define是定义一个宏,宏的意义是在编译时候会给你简单替换
比如

#define a 2+2;
int m = 5*a;
cout<<m<<endl;//12

typedef 比宏定义要高级一些,错了因为你前面少个'#'

u010765344
u010765344   2013.05.20 11:19

define是宏定义,typedef与宏定义有些差异,它本身是一种存储类的关键字.a b[10] 相当于 b[10][10]

Csdn user default icon
上传中...
上传图片
插入图片