# C 语言数据类型

浮点数常数默认是 double 类型,整数常数默认是 int 类型。
浮点数在存储的过程中是按照二进制形式存储的,是不精确的,存在精度损失,大多数浮点数不是一个精确表示的数。

  • 浮点数怎么做比较?
    做差值比较,用减法,用 abs 函数求绝对值,然后比较大小。

# static 关键字

static 关键字用来修饰局部变量,使其在程序的生命周期内保持不变,即使函数调用结束,局部变量也不会被销毁。

  • 限制作用域
    static 修饰的变量只能在本文件中使用,不能在其他文件中使用。
  • 管理生命周期
    static 变量的生命周期和程序的生命周期相同,直到程序结束才会销毁。
    结构体联合指针去访问结构体成员时,要用 -> 符号,而不是。符号。
    结构体可以包括结构体及函数;用 typedef 定义结构体时,可以简称去书写

# 枚举

不写值,默认是从 0 开始的。
枚举可以用 typedef 定义别名,也可以用 typedef 定义枚举类型。
枚举可以用宏定义,也可以用 const 定义。
枚举可以用 switch 语句进行条件判断。
枚举可以用函数进行转换。

#include <stdio.h>
#include <string.h>
// 枚举类型定义
typedef struct books {
    char name[50];
    char author[50];
    int id;
} php;
void printfBook(php* book) {
    printf("%s\n", book->name);
    printf("%s\n", book->author);
    printf("%d\n", book->id);
    strcpy(book->author, "lele");  // 修改结构体的 author 字段,用指针来完成
}
int main() {
    php book1 = { "xiaoshuo1", "lei", 126656 };
    php book2 = { "xiaoshuo2", "lei", 123456 };
    php book3 = { "xiaoshuo3", "lei", 123452 };
    php book4 = { "xiaoshuo4", "lei", 12356 };
    printfBook(&book4);
    printf("After printfBook: %s\n", book4.author);  // 检查修改是否生效
    printfBook(&book3);
    printf("After printfBook: %s\n", book3.author);  // 检查修改是否生效
    printfBook(&book2);
    printf("After printfBook: %s\n", book2.author);  // 检查修改是否生效
    printfBook(&book1);
    printf("After printfBook: %s\n", book1.author);  // 检查修改是否生效
    return 0;
}
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

FanLei 微信支付

微信支付

FanLei 支付宝

支付宝

FanLei 贝宝

贝宝