指针里的*符号是要靠近变量类型还是要靠近变量名称?

在C语言中只要使用指针,必然用到*运算符。然后经常会看到不同的书中*有靠近变量类型的,有靠近变量名称的,很迷惑这两者有什么区别。后来上网查证了一下,总结如下:

总体来说,*靠近哪一个都可以,编译器都会认为是指针变量,所以本质是一样的。但是两个形式有不同的优点。

int* p;

这个可以理解为p是int类型的指针。而下面这个

int *p;

可以理解为有一个指针p是int类型,实际上也就是int类型的指针而已。

但是int* p这种类型当定义较多变量名称时,容易产生误解。例如:

int* p,q;

这句话的意思是p是int型指针变量,而q只是int类型变量。这种形式等价于

int *p,q; //即int *p,int q

因此,在这种情况下,可以将*靠近变量名称,而不是变量类型。如下:

int *p,q;

这样不会产生歧义。

当然,多分几行写就不存在这个问题了,当然可以。


猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/80722762