【发布时间】:2014-09-25 11:52:42
【问题描述】:
我见过很多使用 int* 声明变量的代码。我知道int*p 声明了一个整数类型的变量,它是一个指针。但是int* p 做了什么?
例如:
int* x,y,z;
这是否意味着所有三个变量都是指针?我们可以用 int *x,*y,*z 代替这个吗?
【问题讨论】:
-
***我知道 int *p 声明了一个整数类型的变量,它是一个指针。 ***
-
最初在 C 中类型是指向的东西,所以你会读它:“p 的整数内容”。语法反映了在声明多个用逗号分隔的变量时。 Straustrup 说他觉得类型是指针而不是内容,更好地表达
int* p更像是:“指向 p 的整数指针”。当您声明多个以逗号分隔的变量时,这种查看类型的方式在除了的每个地方都是可能的。由于向后兼容性问题,这无法更改。因此,这完全是概念性的,以及您如何查看类型。 -
功能上没有区别。有些人喜欢一个,有些人喜欢另一个(有些人用
int * x;来区分差异)。要理解的关键是int* x,y,z;声明了一个指针和 2 个整数,无论*周围的空格放在哪里。 -
@Rohan
int *p声明了一个指向整数类型的变量。