gpt4 book ai didi

c - 语句甚至在没有分号的情况下也能正常工作和执行

转载 作者:行者123 更新时间:2023-11-30 21:33:29 26 4
gpt4 key购买 nike

所以我刚刚写了下面提到的程序:

 #include<stdio.h>
int main()
{
int a, b = 120;
a = -b--;
printf("a = %d, b = %d", a, b);
return 0;
}

输出是 a = -120, b = 119 ,这对我来说很好,但是当我稍微修改一下运行上面的程序时,它会给出一些奇怪的结果。

    #include<stdio.h>
int main()
{
int a, b = 120;
a = b--- *// strange here , because program run without semicolon here.*
printf("a = %d, b = %d", a, b);
return 0;
}

我想知道为什么这个程序能够运行,即使我没有关闭该语句,我也没有看到任何错误。

编辑:如果没有分号,那么对于编译器来说,它意味着相同的语句,除非它看到分号。

最佳答案

您的第二个代码(删除注释引起的语法错误后)读取

a = b-- - printf("a = %d, b = %d", a, b);

由于 printf 返回一个值,因此它是有效的代码。当我初始化时

int a = 0;

程序输出为

a = 0, b = 120

在 C 语言中,行尾并不意味着语句结束。

关于c - 语句甚至在没有分号的情况下也能正常工作和执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com