如果我制作typedef someobject* pntr
;
我可以使用这个typedef来创建一个指向someobject类型对象的指针。但我还可以使用由此typedef制作的指针指向某个对象的数组吗?
答案 0 :(得分:2)
是:
pntr p = new someobject[10];
然而,在C ++和C中,使用typedef来掩盖事物是指针的事实被认为是不好的风格,所以不要这样做。
答案 1 :(得分:1)
是的,但不要输入指定类型。 const pntr
和const someobject*
不一样(前者意味着指针本身是常量;后者意味着指针是常量,这是通常所需的)。
答案 2 :(得分:0)
是肯定的。数组语法实际上只是指定一个内存地址来查找您的类型(对象)。使用typedef将显示在计算类型的指针数学时前进(在内存中)的距离。
e.g。如果你有一个someObject数组,当你从someObjectArray [0]转到someObjectArray [1]
时,编译器需要typedef info将指针向前移动到内存中的正确位置