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];以上定义则报错?求助!!!
-
- 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 2013.05.20 11:19
define是宏定义,typedef与宏定义有些差异,它本身是一种存储类的关键字.a b[10] 相当于 b[10][10]
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!