typedef int a[10];
a b[10]; 为什么分配400个字节的空间?
int a[10];为什么分配了40个字节的空间?
问题:应该怎么解释typedef的这种行为呢?而如果是define a int[10];以上定义则报错?求助!!!
typedef int a[10];
a b[10]; 为什么分配400个字节的空间?
int a[10];为什么分配了40个字节的空间?
问题:应该怎么解释typedef的这种行为呢?而如果是define a int[10];以上定义则报错?求助!!!
使用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 比宏定义要高级一些,错了因为你前面少个'#'