c - 这是错误的还是我遗漏了什么(int count = 10, x;)

标签 c objective-c assignment-operator variable-assignment

在我正在阅读的书中看到这个例子,它对我来说一点意义都没有,我可能遗漏了一些东西,但你似乎正在为计数分配值“10”,然后分配值“x”这甚至不是一个整数。只是想知道这是否是一种有效的语法。

书上是这样说的:

变量 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;

}

最佳答案

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

int count, x, *intptr;

相当于

int count;
int x;
int *intptr;

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

int count = 10, x, *intptr;

相同
int count = 10;
int x;
int *intptr;

仅此而已。

关于c - 这是错误的还是我遗漏了什么(int count = 10, x;),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030881/

相关文章:

c - 使用 puts() 覆盖指针指向的位置上的新值

c++ - 对数组使用算术

c - 下面的 C 代码做了什么,= { }

objective-c - 使用 swift 创建框架有什么缺点吗?

java - 为什么 Java 的 +=、-=、*=、/= 复合赋值运算符不需要将 long 转换为 int?

c - 我希望循环复制空字符或其他内容,但它再次从头开始复制 char。这是为什么?这个循环是如何工作的?

c - 使用 scanf() 将数字解析为数字

c - 在后台通过管道传输到标准输出

ios - 如何获取UIScrollView的zoomScale和contentOffset,并应用于更大的图像?

objective-c - 将日志附加到文件中