在我阅读的书中看到了这个例子,它对我来说根本没有意义,我可能会遗漏一些东西,但似乎你用值'10'然后将值'x'赋值给你哪个甚至不是int。只是想知道这是否是一种有效的语法。
这本书说:
变量count和x以正常方式声明为整数变量。在下一行,变量intPtr被声明为“指向int的指针”。请注意,这两行声明可以组合成一行:
int count = 10, x, *intPtr;
这是它取自的程序:
#import <Foundation/Foundation.h>
int main (int argc, char *argv[ ])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int count = 10, x;
int *intPtr;
intPtr = &count;
x = *intPtr;
NSLog (@"count = %i, x = %i", count, x);
[pool drain];
return 0;
}
答案 0 :(得分:13)
这只是一个声明。声明由描述类型的“基本”部分的初始部分(声明说明符)和以逗号分隔的声明符序列组成,每个部分都声明一个单独的名称,并可能修改基本类型。在C中,您可以使用相同的声明说明符
声明多个名称int count, x, *intptr;
相当于
int count;
int x;
int *intptr;
或者,您可以为每个声明者或其中的一些声明符添加初始值设定项。所以
int count = 10, x, *intptr;
与
相同int count = 10;
int x;
int *intptr;
这就是它的全部内容。
答案 1 :(得分:3)
相当于
int count = 10;
int x;
int *intPtr;
答案 2 :(得分:1)
这是新手和专家 C(和C ++)程序员以及逗号运算符的常见错误来源。 通常的困惑:
int* p, pp;
pp = malloc( sizeof( int ) * N ); /* oops pp is just int, not a pointer */
...
int x;
x = 12, 13, 14; /* and the value of the x is ... */
答案 3 :(得分:0)
逗号意味着,x也是一个int,* intPtr也是int(而intPtr是指向int的指针)。 它像:
Aunts Mary, Jane, Daryl;
Mary is stupid;
Jane is Old;
Daryl is same as Mary;
答案 4 :(得分:0)
就像
int count, x;
除了将计数初始化为10