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的指针”
其他人说,最好把
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;