C语⾔数据类型和变量

发布于:2025-03-04 ⋅ 阅读:(18) ⋅ 点赞:(0)

C 语言的数据类型

  • 类型分类

  • C 语言提供丰富的数据类型,包括字符型(char、signed char、unsigned char)、整型(short、int、long 等多种,且各有 signed 和 unsigned 修饰形式) 、浮点型(float、double、long double)以及 C99 引入的布尔类型(_Bool )布尔类型的使⽤得包含头⽂件 <stdbool.h>布尔类型变量的取值是: true 或者 false。不同数据类型用于描述不同特征的数据,如整型描述整数,浮点型描述小数。

  • 类型长度与 sizeof 操作符

  • 使用sizeof操作符可计算数据类型或变量的长度,单位为字节。其操作数可以是类型、变量或表达式,且表达式在计算时不真实参与运算。在 VS2022 X64 配置下,char类型长度为 1 字节,int为 4 字节等 。

变量

  • 变量创建与初始化

  • 变量用于存储变化的值,创建时需指定数据类型和变量名,可进行初始化。如int age = 18;创建并初始化了一个整型变量age 。
  • 变量分类

  • 分为全局变量(在大括号外部定义,作用域为整个工程)和局部变量(在大括号内部定义,作用域局限于所在局部范围) 。当局部变量和全局变量同名时,局部变量优先使用。例如:
#include <stdio.h>
int global = 2023;
int main() {
    int local = 2018;
    int global = 100;  // 局部变量global,优先使用
    printf("局部变量global: %d\n", global); 
    printf("全局变量global: %d\n", ::global); 
    return 0;
}

 全局变量和局部变量在内存中存储在哪⾥呢?

内存中的三个区域:栈区、堆区、静态区。
1. 局部变量是放在内存的栈区
2. 全局变量是放在内存的静态区
3. 堆区是⽤来动态内存管理的

操作符

  • 算术操作符

  • 包括+-*/% ,用于基本的算术运算。整数除法会丢弃小数部分,%只能用于整数求模运算 。例如:

#include <stdio.h>
int main() {
    int a = 10, b = 3;
    int sum = a + b;
    int sub = a - b;
    int mul = a * b;
    int div1 = a / b; 
    int mod = a % b; 
    printf("和: %d\n", sum);
    printf("差: %d\n", sub);
    printf("积: %d\n", mul);
    printf("商: %d\n", div1); 
    printf("余数: %d\n", mod); 
    return 0;
}
  • 赋值操作符与复合赋值符

  • 赋值操作符=用于给变量赋值,也支持连续赋值,但不建议使用,因其不易理解。复合赋值符(如+=-= 等)简化了代码编写。例如:
#include <stdio.h>
int main() {
    int a = 5;
    // 普通赋值
    a = a + 3;
    // 复合赋值
    a += 3; 
    printf("a的值: %d\n", a); 
    return 0;
}
  • 单目操作符

  • ++(前置和后置自增)、--(前置和后置自减)、+(正号)、-(负号) 。前置操作符先进行运算再使用变量值,后置操作符先使用变量值再进行运算。例如:
#include <stdio.h>
int main() {
    int a = 10, b, c;
    b = ++a; 
    c = a++; 
    printf("前置自增后a: %d, b: %d\n", a, b); 
    printf("后置自增后a: %d, c: %d\n", a, c); 
    return 0;
}

数据类型的修饰与取值范围

  • signed 和 unsigned 修饰

  • signed表示类型带正负号,unsigned表示类型只表示零和正整数。int默认等同于signed int ,字符类型char默认是否带正负号由系统决定 。
  • 取值范围:不同整型和浮点型数据类型有各自的取值范围,可通过limits.hfloat.h头文件查看。如 16 位signed short int取值范围是 - 32768 ~ 32767,unsigned short int是 0 ~ 65535 。

输入输出函数

  • printf 函数

  • 用于将文本输出到屏幕,可通过占位符定制输出格式。占位符与数据类型对应,如%d对应整数,%s对应字符串等 。例如:

    #include <stdio.h>
    int main() {
        int num = 123;
        float f = 3.14f;
        char str[] = "Hello";
        printf("整数: %d\n", num);
        printf("浮点数: %.2f\n", f); 
        printf("字符串: %s\n", str); 
        return 0;
    }
  • scanf 函数

  • 用于读取用户键盘输入,其语法与printf类似,通过占位符指定输入数据类型,变量前需加&取地址符(指针变量除外)。例如:

#include <stdio.h>
int main() {
    int num;
    printf("请输入一个整数: ");
    scanf("%d", &num);
    printf("你输入的整数是: %d\n", num);
    return 0;
}