C多个单行声明
回答
只有x
是int的指针; y
和z
是常规整数。
这是C声明语法的一个方面,它让一些人前往。 C使用声明符的概念,该概念引入了声明的名称以及未由类型说明符提供的附加类型信息。在声明
int* x, y, z;
的说明符*x
,y
,并且z
(那就是你可以写任何int* x
或int *x
,而这个问题的几个原因之一,我建议使用第二种风格的C语法的事故)。的x
,y
,和z
的int岬由类型说明符int
指定,而由声明符*x
指定的x
指针岬(IOW,表达*x
具有类型int
)。
如果你希望所有三个对象都是指针,你有两个选择。您可以声明为指针明确:
int *x, *y, *z;
,或者你可以创建一个整型指针的typedef:
typedef int *iptr;
iptr x, y, z;
只要记住,声明指针时,该*
是变量名称的一部分,而不是类型。
真正的完整答案,以及*是否为类型或变量的基本问题。 – ruralcoder 2010-07-14 14:58:24
在你的第一句话:
int x, y, z;
他们都是int
秒。
然而,在第二个:
int* x, y, z;
只有x
是指向int
。 y
和z
是普通的int
s。
如果你希望它们都被指向int
是你需要做的:
int *x, *y, *z;
这是间距'int * foo;'的一个原因是真的被误导了。在这个问题的例子中,它看起来像3个变量都是“'int *'”类型的。我会说这个间距几乎和'a + b * c'一样令人反感。 – 2010-07-14 14:59:59
只有x是一个int指针。 Y和Z将会是int。 如果你想要个三分球:
int * x, * y, * z;
重要的是要知道,在C中,声明模仿使用。 *一元运算符在C中是正确的关联。因此,例如在int *x
中x是指向int(或int-star)的指针类型,而在int x
中,x的类型为int。
正如其他人也提到的,在int* x, y, z;
C编译器声明x为一个int星,y和z为整数。
- 1. 声明溢出多个行
- 2. C/C++多个条件,如果声明
- 3. 在单个声明中声明多个指针
- 4. Objective-C声明一个多维数组
- 5. 简单C++程序上的多个未声明的标识符
- 6. 1声明多个变量的声明,如声明语句
- 7. 如果声明有多个行
- 8. c结构声明行为
- 9. 多行的声明如果
- 10. 多行注释声明后
- 11. 函数声明在多行
- 12. Javadoc多行声明语法?
- 13. 在多行中声明NSString
- 14. javascript多行字典声明
- 15. 在C中声明一个looooong单行字符串#
- 16. 在单行中声明多个变量+ Angular 2&TypeScript
- 17. 如何记录声明多个变量的单行?
- 18. Objective-C:声明一个UIButton
- 19. xUnit声明多个属性
- 20. 多个函数声明
- 21. 函数的多个声明
- 22. sql多个案例声明
- 23. Spring声明多个bean
- 24. Jquery中的多个声明
- 25. 多个聚合声明
- 26. 批量重构“使用”声明的声明在C#在多个文件
- 27. 声明与一个声明多个变量中MiniZinc
- 28. 同时声明多个外键或单独声明它们有什么区别?
- 29. C++ typedef声明
- 30. c winapi声明#
编辑的问题,因为它与Objective C无关目录C – 2010-07-14 14:17:01
我知道这里有一个这个问题的重复(我以前肯定读过这个) – 2010-07-14 14:48:35