小编CAj*_*0n.的帖子

if语句中的赋值运算符

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

if (b = a || b == ++c )
    a+=3;
Run Code Online (Sandbox Code Playgroud)

为什么a,b和c 3,1,0的值分别是?更具体地说,为什么是b 1而不是0?

c

0
推荐指数
1
解决办法
72
查看次数

C数组遍历导致c90标准循环(但不是c99)

#include <stdio.h>

int main(void){
    double arr[] = { 1.1, 2.2, 3.3, 4.4 };
    int i;

    for (i=0; i<=4; i++) {
        printf("%d\n", i);
        arr[i] = 0;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

用gcc(c90)编译得到一个无限循环(1,2,3,4,1,2,3,4 ...),而用gcc(c99)编译只产生(0,1,2,3,4) .有什么可归因于这种差异?

c

-2
推荐指数
1
解决办法
140
查看次数

标签 统计

c ×2