Joy*_*Joy 4 c boolean boolean-operations
我在C程序中找到了这个表达式,但我没有得到它:
struct stack_rec *ss;
ss=(struct stack_rec *)EMalloc(sizeof(struct stack_rec));
if (ss) {
int res;
res = (ss->elem = * i , 1); // what does this mean ????
if (res <= 0)
return res;
if (*s == 0) {
ss->next = 0;
} else {
ss->next = *s;
}
*s = ss;
return 2;
}
return 0;
Run Code Online (Sandbox Code Playgroud)
什么res = (ss->elem = * i , 1);意思?它是一个布尔表达式吗?我用0而不是1来尝试它,它总是返回第二个参数的值!请问有人能解释这个表达吗?
看起来很破 它是逗号运算符的用法,它简单地计算最终表达式的值,即1.
因此,由于该代码相当于:
ss->elem = *i;
res = 1;
Run Code Online (Sandbox Code Playgroud)
随后的测试res看起来毫无意义,因而破碎.
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |