这个C行为叫什么

我正在学习 C 作为 Javascript 开发人员,我犯的一个常见错误是我应该像这样在 C 中定义多个变量

int a, b, c;
a = b = c = 0;

我不小心用 Javascript 的方式做的

a,b,c = 0;
a,b,c = 0;

我想知道上面叫什么,什么时候应该定义这样的变量。

回答

我想知道上面的叫什么....

关于这个声明的两件事

首先,这与

a;
b;
c = 0;

表达式a;b;结果未使用。

编译器必须在此语句上抛出警告消息。当我用clang编译器编译时,我收到以下警告:

p.c:6:2: warning: expression result unused [-Wunused-value]
        a, b, c = 9;

        ^
p.c:6:5: warning: expression result unused [-Wunused-value]
        a, b, c = 9;
           ^

中,,在语句是,(逗号)运算符。

准确地说,逗号运算符在一般表达式中的含义

e1 , e2

对子表达式求值e1并丢弃结果,然后求值e2;表达式的值是 的值e2

因此,表达式a,b,c = 0的值是 的值c = 0。变量ab将保持未初始化状态

你可以试试这个并检查这个语句后的变量值:

a = 99, b = 5, c = 0;

由于您正在学习 C,让我再告诉您一件事 - ,(逗号)在函数调用和定义、变量声明、枚举声明和类似构造中充当分隔符。首先,检查这个

什么时候我应该定义这样的变量。

该语句a,b,c = 0;不是变量a,b和 的定义c。您已经定义的变量abc在这里

int a, b, c;

请注意,在此语句中,,is 充当分隔符。

只要您非常了解它,它的使用完全取决于您。,(逗号)运算符的最常见用途之一是在for循环中,它可用于初始化多个变量和/或递增/递减循环计数器变量和其他变量等,例如:

for (i = 0, j = some_num; i < some_num; ++i, --j) ....


以上是这个C行为叫什么的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>