Skip to content

第二章 基本数据类型和变量

本章目标

  • 掌握 C 语言的基本数据类型
  • 理解变量的声明与初始化
  • 理解常量与变量的区别
  • 学会使用关键字 const

基本数据类型

C 语言的基本数据类型分为以下几类:

  1. 整型:

    • int:整数类型,表示没有小数部分的数字。
    • 常见修饰符:short(短整型)、long(长整型)、unsigned(无符号)。
    • 示例:
    c
    int a = 10;
    unsigned int b = 20; // 无符号整型
  2. 浮点型:

    • float:单精度浮点数。
    • double:双精度浮点数,精度更高。
    • 示例:
    c
    float pi = 3.14f;
    double e = 2.718;
  3. 字符型:

    • char:字符类型,用于存储单个字符。
    • 示例:
    c
    char c = 'A';
  4. 其他类型:

    • void:无类型,用于函数返回值为空或泛型指针。

变量

变量的声明与初始化

  • 声明:告诉编译器变量的名称和数据类型。
  • 初始化:为变量赋初始值。

代码示例:

c
#include <stdio.h>

int main(void) {
    int age = 25;          // 整型变量
    float height = 175.5;  // 浮点型变量
    char grade = 'A';      // 字符型变量

    printf("年龄: %d\n", age);
    printf("身高: %.1f cm\n", height);
    printf("等级: %c\n", grade);

    return 0;
}

输出结果:

sh
年龄: 25
身高: 175.5 cm
等级: A
格式说明符

在 C 语言中,%d%.1f%c 是格式化字符串的一部分,常用于 printfscanf 函数中,表示如何格式化输出或读取变量的值。下面是详细解释:

格式说明符的作用

格式说明符用来告诉程序如何处理和显示数据。常见的格式说明符包括:

  • 整数(整型)

    %d:用于以十进制形式输出或读取整数。

    c
    int num = 42;
    printf("The number is %d\n", num); // 输出: The number is 42
  • 浮点数(小数)

    %f:用于输出或读取浮点数。 默认显示小数点后 6 位。

    c
    float pi = 3.14159;
    printf("PI: %f\n", pi); // 输出: PI: 3.141590
    • %.1f:控制小数点后的位数。

    • %.1f:表示显示 1 位小数。

    • %.2f:表示显示 2 位小数,依此类推。

      c
      float pi = 3.14159;
      printf("PI: %.1f\n", pi); // 输出: PI: 3.1
      printf("PI: %.2f\n", pi); // 输出: PI: 3.14
  • 字符

    %c:用于输出或读取单个字符。

    c
    char letter = 'A';
    printf("The letter is %c\n", letter); // 输出: The letter is A
  • 字符串

    %s:用于输出或读取字符串。

    c
    char name[] = "Alice";
    printf("Name: %s\n", name); // 输出: Name: Alice

更详细的格式说明符

宽度控制: %5d:表示输出一个至少占 5 个字符宽度的整数,不足时补空格。

c
printf("Number: %5d\n", 42); // 输出: Number:    42

对齐与填充: %-5d:左对齐,占 5 个字符宽度。

c
printf("Number: %-5d\n", 42); // 输出: Number: 42

科学计数法: %e:用于以科学计数法输出浮点数。

c
printf("Value: %e\n", 12345.678); // 输出: Value: 1.234568e+04

综合示例

c
#include <stdio.h>

int main(void) {
    int age = 25;
    float height = 175.5;
    char grade = 'A';

    printf("Age: %d years\n", age);             // 整数输出
    printf("Height: %.1f cm\n", height);        // 浮点数输出,保留 1 位小数
    printf("Grade: %c\n", grade);               // 字符输出

    return 0;
}

输出结果:

sh
Age: 25 years
Height: 175.5 cm
Grade: A

为什么要使用格式说明符?

  1. 精确控制输出格式:可以指定数字的精度、对齐方式等。
  2. 支持多种数据类型:使得 printfscanf 能灵活处理不同的数据类型。
  3. 提高代码可读性:让输出更直观、整洁。

常量

常量的特点

  • 常量的值在程序运行过程中不可更改。
  • 使用 const 关键字声明。

代码示例:

c
#include <stdio.h>

int main(void) {
    const float PI = 3.14159; // 声明一个常量
    int radius = 10;         // 圆的半径

    float area = PI * radius * radius; // 计算面积
    printf("半径为 %d 的圆的面积是 %.2f\n", radius, area);

    // PI = 3.14; // 错误,无法修改常量

    return 0;
}

输出结果:

sh
半径为 10 的圆的面积是 314.16

本章小结

  • 数据类型决定变量存储的内容和大小。
  • 变量的值可以随时修改,而常量的值一旦定义就不能改变。
  • 使用 const 声明常量时,可以提高程序的安全性和可读性。