【发布时间】:2021-05-12 23:32:37
【问题描述】:
为什么会打印 -1
#include <stdio.h>
int main(){
unsigned int i = -1;
printf("%d", i);
return 0;
}
打印时
#include <stdio.h>
int main(){
unsigned int i = -1;
printf("%u", i);
return 0;
}
可能的最大整数值
还有,为什么会这样
#include <stdio.h>
int main(){
int c = printf("Hello");
printf("%d", c);
return 0;
}
打印 hello5 而不是 5。
反陈述//为埃里克
你提到了副作用,对吧?
#include <stdio.h>
int main(){
int i = 0;
for (; i++; printf("%d", i));
printf("%d", i);
return 0;
}
为什么 for 循环中的 printf ("%d",i) 不打印此代码中的值作为副作用?
【问题讨论】:
-
C 对初学者不友好。您正在做通常不应该做的事情:将有符号值存储在无符号变量中。另外:printf 函数默认写入
stdout,那么为什么不会您希望打印“Hello”部分?花一些时间来玩弄这些东西,直到你熟悉它们。你需要开始了解你在做什么。例如,要了解内存中的值与该值在其他地方的表示之间的区别。 -
printf("Hello\n")成功了 -
第3题与其他2题无关。请不要在同一个问题中问无关的问题,最好将它们分成几个。