在C++中声明指针时,我在哪里放置星号是否重要?

use*_*994 6 c++ syntax pointers

我只是在学习C++,而且从我过去几天看过的所有示例代码中我都很难理解指针应该放在哪里.

这3个有什么不同?

1. char* x = /* ... */
2. char *y = /* ... */
3. char * z = /* ... */
Run Code Online (Sandbox Code Playgroud)

要么

1. ClassX* x = /* ... */
2. ClassY *y = /* ... */
3. ClassZ * z = /* ... */
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Cod*_*ray 13

没有区别.他们完全一样.

你可以随意选择写它.通常,C++程序员将星号放在类型旁边,而C程序员更常见的是将星号放在变量名称旁边.

唯一需要注意的缺陷就是当你在一行上声明多个变量时(无论如何,你真的不应该这样做,如果不是因为这个原因).例如,在以下语句中,只将变量x声明为指针:

char* x, y;
Run Code Online (Sandbox Code Playgroud)

将其与以下内容进行比较,这使得更清楚哪些变量是指针:

char *x, y;
Run Code Online (Sandbox Code Playgroud)

我可以说,第三种语法是两种主要选项之间的差别妥协.有人决定将星号放在中间,而不是将星号放在中间,这是它唯一属于的唯一地方.