typedef的问题
#include <iostream>using namespace std;
int main()
{const size_t array_size1=3;
const size_t array_size2=4;
int array[array_size1][array_size2]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
typedef int int_array[4];
for (int_array *p=array;p!=array+3;++p)
{ for (int *q=*p;q!=*p+4;++q)
{cout<<*q<<endl;
}
}
return 0;
}
typedef是用来定义类型的同义词的,上述程序就是将int_array[4]定义为int的同义词。但是for语句中的第一句用了一个int_array,想不明白。请解释一下这个程序吧!谢谢!
[[it] 本帖最后由 sunkaidong 于 2008-4-22 12:35 编辑 [/it]] typedef int int_array[4];
别曲解了这句话,typedef定义了一个int_array指向一个int数组,这个数组含有4个元素。
所以
int_array *p=array 等价于 int (*p)[4] = array 可是在typedef int int_array[4]中,int_array[4]不是int 的同义词吗?一个指针和一个int型是等价的吗? [quote][bo]以下是引用 [un]woaitudi[/un] 在 2008-4-22 15:17 的发言:[/bo]
可是在typedef int int_array[4]中,int_array[4]不是int 的同义词吗?一个指针和一个int型是等价的吗? [/quote]
我猜你这段代码是在c++ primer上的吧。
把指针与数组这部分使劲读几编,再不明白说明你不适合看这本书,换本浅显点的例如c++ primer plus
最后再看我上面的回答。 恩 是的 是C++ Primer 上的 谢谢!! C++primer这书不错 多看看别的书哪有不懂的
页:
[1]
