C++ 指针声明语法

C++ 指针声明语法,c++,C++,两者的区别是什么 Simple_window* sw 及 其中简单窗口只是类,而sw是从该类创建的对象。基于*字符的位置没有区别 有人会这么说 Simple_window* sw 由于它将指针指示器*与类型名Simple\u window关联,从而给出真正的类型:Simple\u window*,即“指向Simple\u window的指针” 其他人说,最好把 */Cuff>特写,以便于变量,因为C++只对下一个变量进行解释。就是 Simple_window* sw, anotherSw

两者的区别是什么

Simple_window*  sw


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

基于
*
字符的位置没有区别

有人会这么说

Simple_window* sw
由于它将指针指示器
*
与类型名
Simple\u window
关联,从而给出真正的类型:
Simple\u window*
,即“指向Simple\u window的指针”

其他人说,最好把 */Cuff>特写,以便于变量,因为C++只对下一个变量进行解释。就是

Simple_window* sw, anotherSw
实际上,将
sw
声明为指针,将
另一个sw
声明为非指针
简单窗口
对象!因此,当使用多个声明时,close-About变量版本可能更好地指示意图

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


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

除了

Simple_window*  sw
表示您正在定义类型为
Simple\u window*
的变量

Simple_window  *sw 
表示您正在定义类型为
Simple\u window
的指针,它们基本上都是指针

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

int* x, y, z;
意味着x、y和z都是指针,但它们不是(只有x是)。 第二个版本没有此问题:

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

至少在语义上没有区别。两者在风格上存在差异,可以说其中一种可能比另一种更受欢迎。
int *x, y, z;