C ++ typedef问题

时间:2010-01-30 21:11:09

标签: c++

如果我制作typedef someobject* pntr;

我可以使用这个typedef来创建一个指向someobject类型对象的指针。但我还可以使用由此typedef制作的指针指向某个对象的数组吗?

3 个答案:

答案 0 :(得分:2)

是:

pntr p = new someobject[10];

然而,在C ++和C中,使用typedef来掩盖事物是指针的事实被认为是不好的风格,所以不要这样做。

答案 1 :(得分:1)

是的,但不要输入指定类型。 const pntrconst someobject*不一样(前者意味着指针本身是常量;后者意味着指针是常量,这是通常所需的)。

答案 2 :(得分:0)

是肯定的。数组语法实际上只是指定一个内存地址来查找您的类型(对象)。使用typedef将显示在计算类型的指针数学时前进(在内存中)的距离。

e.g。如果你有一个someObject数组,当你从someObjectArray [0]转到someObjectArray [1]

时,编译器需要typedef info将指针向前移动到内存中的正确位置