C语言中关于if及有无大括号的相关问题

想请问一下下面这个代码为什么时输出2?我的理解是if下面不带大括号所以只能有一个语句,而c=0后面有";",所以应该会执行else;
从而输出3。

img

else是匹配最近的一个if,也就是内层的if
c语言是基于语法的,缩进只是自己看起来清楚,你给它跟外层if一样的缩进它也并不对应外层的if
别把c和python搞混了
你想让它对应外层的if,该加括号加括号呀
你搞不清默认怎么匹配,还不爱加括号,不是给自己挖坑吗

if语句没有使用大括号包含它们的语句,if条件是否为真都不影响c++这行始终被执行,不太理解你说的输出2是什么意思

可是if下面没有大括号,那不是应该只有一个语句吗?如果是2的话if下面那不是跟了两个语句吗?

  • 这篇博客: 【C】 C语言入门——带你从0开始中的 注意:if()和else后面都没有没有分号,直接写{} 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include <stdio.h>
    int main()
    {
        int coding = 0;
        printf("你会去敲代码吗?(选择1 or 0):>");
        scanf("%d", &coding);
        if(coding == 1)
       {
           prinf("坚持,你会有好offer\n");
       }
        else
       {
           printf("放弃,找不到工作\n");
       }
        return 0;
    }