这是错的还是我错过了什么(int count = 10,x;)

nic*_*ude 1 c objective-c variable-assignment assignment-operator

在我阅读的书中看到了这个例子,它对我来说根本没有意义,我可能错过了一些东西,但似乎你用值'10'分配计数,然后是值'x',这是不均匀的一个int.只是想知道这是否是有效的语法.

这本书说:

变量count和x以正常方式声明为整数变量.在下一行,变量intPtr被声明为"指向int的指针".请注意,这两行声明可以组合成一行:

int count = 10, x, *intPtr;
Run Code Online (Sandbox Code Playgroud)

这是程序取自:

#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;

}
Run Code Online (Sandbox Code Playgroud)

AnT*_*AnT 13

这只是一个声明.声明由初始部分(的声明说明)描述的类型的"基本"的一部分,并以逗号分隔的序列说明符,其中每一个声明了一个单独的名称和,可能的话,修改的基本类型.在C中,您可以使用相同的声明说明符声明多个名称

int count, x, *intptr;
Run Code Online (Sandbox Code Playgroud)

相当于

int count;
int x;
int *intptr;
Run Code Online (Sandbox Code Playgroud)

或者,您可以为每个声明符或其中的一些声明符添加初始值设定项.所以

int count = 10, x, *intptr;
Run Code Online (Sandbox Code Playgroud)

是相同的

int count = 10;
int x;
int *intptr;
Run Code Online (Sandbox Code Playgroud)

这就是它的全部内容.