指针定义的格式是 : <数据类型> *<变量名称>
在C语言的官方文档内,推荐定义指针时 指针运算符* 要紧贴指针变量名,而不要挨着数据类型名。
为什么呢?
*<指针变量名>:指针变量的变量名。前面加 * 代表这是一个指针变量
*紧贴指针变量的变量名能够让我们更快,更准确的判断出一个变量是一个指针变量
下面举一个例子就能够更好的理解这一写法了 ;
such as:
//我需要同时定义多个指向int 类型的指针;
<按官方推荐的写法> : 指针运算符* 要紧贴指针变量名,而不要挨着数据类型名
第一种写法:
可以写成:
int *p1;
int *p2;
int *p3;
int *p4;
第二种写法;
可以写成:
int *p1,*p2,*p3,*p4;
若写成 指针运算符*紧贴数据类型名:
int* p1;
int* p2;
int* p3;
int* p4;
或
int* p1,*p2,*p3,*p4;
*紧贴数据类型名 就可能造成将指针变量 看成int类型变量的错误
实际应用当中这两个中写法都是可以的;
大家也可以更具自己的习惯去书写!
初学者可能会出现下面的错误:
定义多个指向int 类型的指针
错误写法:
int *p1,p2,p3,p4;
错误原因: *<指针变量名>:指针变量的变量名。前面加 * 代表这是一个指针变量
这样的这结果就是定义了一个指向int类型的指针 p1和 三个int类型的变量 p2,p3,p4
(不要使用这种方法去定义一个指向int类型的指针 和 几个int类型的变量,增加代码的可读性)
tips
有同学会存在疑惑,vs code中定义了指针变量之后*就会自动的挨着数据类型名。
其实这和各个编译器自己的显示风格有关了。
(文章的主要目的是为了,让大家区别开int a,*b; int *a,b;和int* a,b;)
int a,*b; 变量a是int(整型)变量,b是指向int(整型)的指针变量
int *a,b; 变量a指向int(整型)的指针变量,b是int(整型)变量
int* a,b; 变量a指向int(整型)的指针变量,b是int(整型)变量
接着再说如何再vs code中如何调整代码格式风格:
在 VS Code 中,你可以使用内置的格式化工具或者安装扩展来进行格式化。具体的步骤如下:
- 打开 VS Code 并进入你的工作区。
- 点击菜单栏的“文件”选项,选择“首选项” > “设置”。
- 在搜索框中输入“format”,找到“C/C++/Objective-C”设置。
- 点击“Edit in settings.json”打开设置文件。
- 在设置文件中添加以下内容:
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: LLVM, PointerAlignment: Right }",
"C_Cpp.formatting": "false"
这个设置会使用 LLVM 风格的格式,并将指针的对齐方式设置为右对齐。同时,禁用编辑器的格式化功能,以免与 clang-format 冲突。
6.保存设置文件,并重新打开 VS Code。
现在,当你定义指针变量时,星号 *
就会离开数据类型名一些距离了。如果你希望更改星号与数据类型名的距离,也可以在 clang-format 的设置中调整 PointerAlignment
的值。