rur*_*der 28 c variables declaration
当我宣布在一行上说多个变量时会发生什么?例如
int x, y, z;
Run Code Online (Sandbox Code Playgroud)
一切都是整体.问题是以下陈述中的y和z是什么?
int* x, y, z;
Run Code Online (Sandbox Code Playgroud)
它们都是int指针吗?
Joh*_*ode 60
只有x
指向int的指针; y
并且z
是常规的.
这是C声明语法的一个方面,可以让一些人绊倒.C使用声明符的概念,它引入了声明的事物的名称以及类型说明符未提供的其他类型信息.在宣言中
int* x, y, z;
Run Code Online (Sandbox Code Playgroud)
声明者是*x
,y
和z
(这是C语法的意外,你可以写int* x
或者int *x
,这个问题是我建议使用第二种风格的几个原因之一).的整型岬x
,y
和z
由类型指定单元指定int
,而指针岬x
由声明符指定*x
(IOW,表达*x
具有类型int
).
如果您希望所有三个对象都成为指针,那么您有两个选择.您可以明确地将它们声明为指针:
int *x, *y, *z;
Run Code Online (Sandbox Code Playgroud)
或者您可以为int指针创建一个typedef:
typedef int *iptr;
iptr x, y, z;
Run Code Online (Sandbox Code Playgroud)
请记住,在声明指针时,它*
是变量名称的一部分,而不是类型.
在你的第一句话中:
int x, y, z;
Run Code Online (Sandbox Code Playgroud)
他们都是int
.
但是,在第二个:
int* x, y, z;
Run Code Online (Sandbox Code Playgroud)
只是x
一个指针int
.y
而且z
很简单int
.
如果你想让它们全部成为int
你需要做的事情:
int *x, *y, *z;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19213 次 |
最近记录: |