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