本人刚入门c语言,关于{}的困惑

if (num1 > num2)

printf(“%d”,num1);
}//是标准的格式

if (num1 > num2)
printf(“%d”,num1);//可这样程序也能跑
想问一下{}的意义是什么呢?{}有什么特殊情况的作用吗?

如果if只有1行语句,{} 可以写也可以不写
如果有多行语句,必须写
所以你的情况,只有一个printf,两种都是对的。

在C语言中,大括号{}通常用于定义代码块,也称为复合语句。代码块中的语句可以被视为一个整体,可以在程序中的不同位置被调用和执行。此外,大括号还用于定义结构体、数组和初始化器等语法结构。
一般来说if后面跟一条语句的话可以省略{}但是跟多条语句的话就不能省略了

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7633009
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:表达式求值过程中会发生哪些隐藏的变化?求值顺序又由什么决定?——详解C表达式求值中的隐式类型转换,算术转换问题,以及操作符的属性
  • 除此之外, 这篇博客: 关于C语言中逆序输出以及判断回文数题目的解法笔记中的 一、如何计算用户输入的数是几位数? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •   在做逆序输出以及判断回文数题目之前,先做下这道题,如何计算用户输入的数是几位数呢?

      思路:假设用户输入的数据是四位数1234
      我们知道,1234%10=4,我们就取到了用户输入数值中末位数字4这个数字,这时候我们就知道用户输入的数至少是个位数了(废话)。
      我们还知道,1234/10=123,我们可以利用他把用户输入的数值更新,更新之后,猜到没,我们再继续走步骤一,如果走得动,我们又知道用户输入的数值至少是两位数了。
      就这样再更新成12,取得末位数字2,我们就知道用户输入数值至少为三位数了,再更新成1,取得末位数字1,我们就知道用户输入的数值至少为四位数了这时候1/10=0,完犊子,更新不了了,停止,我们就知道用户输入的数值,最终是四位数
      具体代码如下:

    #include <stdio.h>
    
    int main(void)
    {
        int number = 0; //用来存放用户输入的数值
        int count = 0;//用来记录我们猜测的数值位数。
    
        printf("请输入一个数,我来判断你输入的是几位数:\n");
        scanf("%d", &number);
    
        while (number != 0)//当number/10等于0时
        {
            number = number / 10;//更新number
            count++;//先更新在记录,先记录在更新的话记录的是前一次数值的位数。
        }
    
        printf("您所输入的数是%d位数", count);
    
        return 0;
    }
    
    请输入一个数,我来判断你输入的是几位数:
    56654523
    您所输入的数是8位数
    

  • 您还可以看一下 王健伟老师的C语言入门篇课程中的 结构体变量定义、引用、初始化小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    C语言中的{}是用来表示一个代码块的起始和结束。在C语言中,代码块由{}包围,可以包含多条语句,用来组织和控制这些语句的执行顺序。

    {}的作用有以下几个方面:

    1. 控制语句的范围:{}可以用来界定控制语句(如if、for、while等)的范围,使得控制语句只对{}内的语句生效。

    2. 定义局部变量:{}可以用来定义局部变量,因为在C语言中,变量的作用域为其定义的代码块范围内。

    3. 定义函数体:在函数定义中,函数体也是用{}包围的。

    4. 规范化代码结构:使用{}可以提高代码可读性,使得代码的结构更加清晰明了。

    以下是一个示例来展示{}在C语言中的使用:

    #include<stdio.h>
    
    void func(int num) {
        if (num > 0) {
            printf("Number is positive.\n");
        } else {
            printf("Number is negative.\n");
        }
    }
    
    int main() {
        int a = 10;
    
        if (a > 5) {
            printf("a is greater than 5.\n");
        } else {
            printf("a is not greater than 5.\n");
        }
    
        {
            int b = 20; // 定义局部变量b
            printf("a + b = %d", a + b);
        }
    
        func(a);
    
        return 0;
    }
    

    在上面的例子中,{}分别用来界定if语句和代码块中的语句范围,以及定义局部变量b的作用域范围。同时,函数体、函数定义也使用了{}进行界定。

    总结来说,C语言中的{}用来界定代码块的范围,控制语句的执行范围,定义局部变量的作用域和规范化代码的结构。没有特殊情况下的用途。

如果{}中只有一行语句,{}可省略不写