定义指针类型时*号位置与功能的关系

来源:百度知道 编辑:UC知道 时间:2024/05/24 19:08:28
常常看到这样的句子:int* a;和int *a; 请问这*号紧靠在类型后面和紧靠变量前面,在含义上有什么区别吗? 在使用变量时有什么区别吗?

没有区别,但有人建议写成紧靠变量,
比如你想声明两个指针a,b,如果紧靠类型,容易出现错误
int* a,b

以下文字摘自<高质量C++编程指南>:

修饰符 * 和 & 应该靠近数据类型还是该靠近变量名,是个有争议的活题。

若将修饰符 * 靠近数据类型,例如:int* x; 从语义上讲此写法比较直观,即x是int 类型的指针。

上述写法的弊端是容易引起误解,例如:int* x, y; 此处y容易被误解为指针变量。虽然将x和y分行定义可以避免误解,但并不是人人都愿意这样做。