为什么会打印-1
#include <stdio.h>
int main(){
unsigned int i = -1;
printf("%d", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
虽然这打印
#include <stdio.h>
int main(){
unsigned int i = -1;
printf("%u", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
最大可能的整数值
另外,为什么会这样
#include <stdio.h>
int main(){
int c = printf("Hello");
printf("%d", c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
打印 hello5 而不是 5。
埃里克的反驳//
你提到了副作用,对吧?
#include <stdio.h>
int main(){
int i = 0;
for (; i++; printf("%d", i));
printf("%d", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么 for 循环内的 printf ("%d",i) 不打印此代码中的值作为副作用?
谁能解释为什么这个程序打印 4 1 而不是 4 2?
优先级较高的预增量运算符不应该首先执行并打印 4 2 吗?
#include <stdio.h>
int main() {
int a=1;
printf ("%ld %d",sizeof(++a),a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)