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;
    }