C 可能的输出是什么?
我很久以前就开始编写代码了,但以前从来没有人问过我这样的问题C 可能的输出是什么?,c,variable-assignment,assignment-operator,C,Variable Assignment,Assignment Operator,我很久以前就开始编写代码了,但以前从来没有人问过我这样的问题 main() { int a=5, b, c; b=a=15; c=a<15; printf("%d %d",a,c); } main() { int a=5,b,c; b=a=15; c=amain() { int a=5,b,c; b=a=15;//a=15 c=a首先,此代码的结果未定义,因为您没有为printf 其次,使用main()是进一步未定义的,因为函数需要返回类型,mai
main()
{
int a=5, b, c;
b=a=15;
c=a<15;
printf("%d %d",a,c);
}
main()
{
int a=5,b,c;
b=a=15;
c=amain()
{
int a=5,b,c;
b=a=15;//a=15
c=a首先,此代码的结果未定义,因为您没有为printf
其次,使用main()
是进一步未定义的,因为函数需要返回类型,main()
尤其需要是int返回类型(其他实现的处理由实现定义)
现在假设您将代码更正为:
#include <stdio.h>
int main(void)
{
int a=5, b, c;
b=a=15;
c=a<15;
printf("%d %d",a,c);
return 0;
}
#包括
内部主(空)
{
int a=5,b,c;
b=a=15;
c=a为什么不试一下呢?UB:printf()的范围内没有原型——任何事情都可能发生我试过它,它打印出c=0。为什么?因为,如果a是15,它不能小于15,你知道……@Legionar:c中的关系运算符产生0
或1
类型int
。
main()
{
int a=5, b, c;
b=a=15; // a = 15
c=a<15; // a is not < 15, a is 15, so c is 0
printf("%d %d",a,c);
}
#include <stdio.h>
int main(void)
{
int a=5, b, c;
b=a=15;
c=a<15;
printf("%d %d",a,c);
return 0;
}