指针声明语法

时间:2013-11-23 23:12:22

标签: c++

之间有什么区别
Simple_window*  sw

Simple_window  *sw

其中简单窗口只是类,sw是从该类创建的对象。

2 个答案:

答案 0 :(得分:1)

根据*字符的位置没有区别。

有些人会说

Simple_window* sw

是优越的,因为它将指针指针*与类型名Simple_window相关联,以提供真实类型:Simple_window*,即“指向Simple_window的指针”。

其他人说最好将*特写放在变量上,因为C ++只会为下一个变量解释它。也就是说,

Simple_window* sw, anotherSw

实际上将sw声明为指针,将anotherSw声明为非指针Simple_window对象!因此,在使用多个声明时,紧密变量版本可能更好地表明意图。

Simple_window *sw, *anotherSw

由于这个问题,我养成了不使用多个对象的单行声明的习惯。

我更喜欢第一个版本,同意我曾经读过的描述它更像“C ++ - ”。

答案 1 :(得分:0)

除了

之外没有太大区别
Simple_window*  sw

表示您正在定义Simple_window*类型的变量,而

Simple_window  *sw 

意味着你要定义一个Simple_window类型的指针,它们都是指针。

当您一起定义多个变量时会出现差异,例如:

int* x, y, z;

暗示x,y和z都是指针,它们不是(只有x)。 第二个版本没有这个问题:

int *x, y, z;

换句话说,由于*绑定到变量名而不是类型,因此将它放在变量名旁边是有意义的。