欢迎光临
我们一直在努力

C语言-002

一、变量定义与命名规则

(一)变量定义

  • 一般形式:<类型名称> <变量名称>;
    • 示例:int price; int amount;
  • 多个变量同时定义:<类型名称> <变量1>, <变量2>;
    • 示例:int price, amount;
  • 变量初始化:定义变量时直接赋予初始值
    • 单个变量初始化:<类型名称> <变量名称> = <初始值>;
    • 示例:int price = 0; int amount = 100;
    • 多个变量组合初始化:可单独为每个变量赋值
    • 示例:int price = 0, amount = 100;
  • (二)变量命名规则(标识符规则)

  • 标识符由字母、数字和下划线组成
  • 数字不能出现在标识符的第一个位置
  • 不能使用 C 语言的关键字(保留字)作为标识符
  • (三)C 语言保留字

    auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while、inline、restrict

    二、变量类型与数据类型

    (一)变量类型核心规则

  • C 语言是强类型语言,所有变量使用前必须定义或声明
  • 变量必须具有确定的数据类型,只能存放对应类型的数据
  • 程序运行过程中不能改变变量的类型
  • (二)基本数据类型

    数据类型描述输入格式符输出格式符示例
    int 整数类型,用于存储整数,运算速度快、占用空间小 %d %d int age = 20;
    double 双精度浮点数,用于存储带小数点的数值(推荐使用) %f %f double weight = 62.5;
    float 单精度浮点数,用于存储带小数点的数值 %f %f float height = 1.75f;

    (三)整数类型特性

  • 不能表达小数部分,整数与整数运算结果仍为整数(如 10 / 3 = 3)
  • 日常大量计算场景适用,实用性强
  • (四)浮点数类型特性

  • 浮点数(浮点型):指带小数点的数值,小数点可 "浮动",是计算机表达非整数的主要方式
  • 与整数混合运算时,C 语言会先将整数转换为浮点数,再进行浮点运算
  • 注意:10(整数)和 10.0(浮点数)在 C 语言中是完全不同的数据类型
  • 三、常量

    (一)直接量(字面常量)

    程序中直接书写的固定不变的数,如 100、3.14 等,示例:int change = 100 – price; 中的 100。

    (二)const 修饰的常量

  • 定义格式:const <类型名称> <常量名称> = <初始值>;
    • 示例:const int AMOUNT = 100;
  • 特性:
    • const 是修饰符,给变量添加 "不可修改" 属性
    • 常量初始化后不能再修改,若试图修改会被编译器报错
    • 推荐使用:增强程序可读性和可维护性
  • 四、输入与输出

    (一)输入函数 scanf

  • 读取整数:scanf("%d", &变量名);
    • 注意:变量名前必须加取地址符 &,示例:scanf("%d", &price);
  • 读取浮点数:scanf("%f", &变量名);
    • 示例:scanf("%f", &weight);
  • (二)输出函数 printf

  • 输出整数:printf("%d", 变量名/表达式);
    • 示例:printf("找您%d元。\\n", change);
  • 输出浮点数:printf("%f", 变量名/表达式);
    • 示例:printf("体重为%fkg\\n", weight);
  • (三)变量定义位置差异(ANSI C 与 C99)

    标准变量定义位置示例
    ANSI C 只能在代码开头定义 int price = 0; int change = 0; scanf("%d", &price); change = 100 – price;
    C99 可在代码中间按需定义 int price = 0; scanf("%d", &price); int change = 100 – price;

    五、表达式与运算符

    (一)表达式

  • 定义:由一系列运算符和算子组合而成,用于计算一个值
  • 示例:
    • amount = X * (1 + 0.033) * (1 + 0.033) * (1 + 0.033);
    • total = 57;
    • count = count + 1;
    • value = (min / 2) * lastValue;
  • (二)基本概念

  • 运算符:进行运算的动作,如 +(加)、-(减)、*(乘)等
  • 算子:参与运算的值,可为常数、变量或方法返回值
  • (三)运算符优先级与结合关系

    优先级运算符运算结合关系示例
    1 + 单目不变 自右向左 a * +b
    1 单目取负 自右向左 a * -b
    2 * 自左向右 a * b
    2 / 自左向右 a / b
    2 % 取余 自左向右 a % b
    3 + 自左向右 a + b
    3 自左向右 a – b
    4 = 赋值 自右向左 a = b

    (四)特殊运算符

  • 赋值运算符
    • 赋值是运算,有返回值(返回被赋予的值)
    • 链式赋值:a = b = 6 等价于 a = (b = 6),结果 a 和 b 均为 6
  • 复合赋值运算符
    • 由算术运算符(+、-、*、/、%)与赋值运算符 = 组合而成
    • 包括:+=、-=、*=、/=、%=
    • 示例:total += 5; 等价于 total = total + 5;
    • 注意:两个运算符中间不能有空格
  • 递增 / 递减运算符(++、–)
    • 单目运算符,算子必须是变量
    • 作用:给变量加 1(++)或减 1(–)
    • 等价关系:
      • count++; 等价于 count += 1; 和 count = count + 1;
      • count–; 等价于 count -= 1; 和 count = count – 1;
    • 前缀与后缀区别:
  • 运算表达式表达式的值
    给 count 加 1 count++(后缀) count 原来的值
    给 count 加 1 ++count(前缀) count+1 以后的值
    给 count 减 1 count–(后缀) count 原来的值
    给 count 减 1 –count(前缀) count-1 以后的值

    #include <stdio.h>

    int main()
    {
        int price = 0;
        
        printf("请输入金额(元)");
        scanf("%d",&price);
        
        int change = 100 – price;
        
        printf("找您%d元\\n",change);
        
        return 0;
        
     } 

    #include <stdio.h>

    int main()
    {
        int a;
        int b;
        
        printf("请输入两个整数:"); 
        scanf("%d %d",&a,&b);
        printf("%d + %d = %d\\n",a,b,a+b); 
        return 0;
        
     } 

    #include <stdio.h>

    int main()
    {
        printf("请分别输入身高的英尺和英寸,"
        "请输入\\"5 7\\"表示五英寸七英尺");
        
        double foot;
        double inch;
        
        scanf("%lf %lf",&foot,&inch);
        
        printf("身高是%f米。\\n",
            ((foot + inch /12)*0.3048));
        
        return 0;
     } 

    #include <stdio.h>

    int main()
    {
        int hour1, minute1;
        int hour2, minute2;
        
        scanf("%d %d", &hour1, &minute1);
        scanf("%d %d", &hour2, &minute2);
        
        int t1 = hour1 * 60 + minute1;
        int t2 = hour2 * 60 + minute2;
        
        int t = t2-t1;
        
        printf("时间差是%d小时%d分。",t/60,t%60);
        
        return 0;
     } 

    #include <stdio.h>

    int main()
    {
        int a=5;
        int b=6;
        int t;
        t=a;
        a=b;
        b=t;
        printf("a=%d,b=%d\\n",a,b);
         
        return 0;
     } 

    赞(0)
    未经允许不得转载:171主机测评 » C语言-002
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址