暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

数据库内核开发新手入门系列(二)初识C语言数据类型

前言:

数据类型是编程的基础,C语言的数据类型可以分为基本类型和构造类型。新手需要分清楚基本类型有哪些,比如整型、浮点型、字符型,以及它们的分类和占用内存大小。

1. C语言的数据类型

数据类型决定了变量可以存储什么样的值,以及占用多少内存空间。C语言的数据类型分为以下几类:

1.1 基本数据类型


    通常情况下,int为最常用的类型,一般用做计数,年龄等使用场景,float和double的话一般用做价格,温度这种后面带有小数的精度数值场景,float一般用做精度低的情况,double用做高精度的情况。

char用做单引号包裹的字符,其本质是存储ASCII编码,所以char 也可以当做小的整数使用(0~255)。

1.2 类型修饰符

可以通过修饰符改变数据类型的范围和符号:

  • short:缩短范围(如 short int)。

  • long:扩展范围(如 long int)。

  • signed:有符号数(默认,可正可负)。

  • unsigned:无符号数(仅正数,范围更大)。

unsigned int age = 25;       // 只能存储非负数
long double bigNumber = 3e10; // 非常大的数

    short的主要作用在于修饰int类型,long一般用作拓展范围,signed表示可变正负数,默认情况下int,char类型是signed的 或者用unsigned。

2. 变量声明与赋值

2.1 变量声明

变量需要先声明后使用,语法:数据类型 变量名;这里需要注意两个事项,首先变量一定要先声明才可赋值,就好比你要打车去一个地方,上车你总得先告诉出租车司机你要去哪里。还有一点就是变量也可以多次赋值。这里新手容易有一个误区就是,是不是这个变量我只要赋值后,如果我想使用其他数值的话 我就要重新声明,其实只需要重新赋值即可。

int score;        // 声明一个整数变量
float price;      // 声明一个浮点数变量
char grade = 'A'; // 声明并直接赋值


2.2 赋值与初始化

在初始化过程中是在变量定义的同时为其赋予初始值。在C里,变量在使用之前应该被初始化,否则它可能包含一些随机的、不可预测的值。
// 基本数据类型初始化
int num = 10;
float f = 3.14f;
char ch = 'A';

// 数组初始化
int arr[5] = {1, 2, 3, 4, 5};

// 结构体初始化
struct Person {
    char name[20];
    int age;
};
struct Person p = {"John", 25};

需要注意的事项

  • 部分初始化:当对数组或结构体进行部分初始化时,未被显式初始化的元素会被自动初始化为 0(对于数值类型)或空字符 '\0'(对于字符类型)。

int arr[5] = {1, 2}; // arr[0]=1, arr[1]=2, arr[2]=0, arr[3]=0, arr[4]=0

  • 常量初始化:在初始化常量时,必须在定义时就进行初始化,并且之后不能再对其进行赋值操作。
  • const int MAX = 100; // 正确
    // MAX = 200; // 错误,常量不能被重新赋值
    • 复合字面量初始化:C99 引入了复合字面量,可以用于初始化变量。
    int *ptr = (int []){1, 2, 3};


    2.3 变量命名规则

    • 只能包含字母、数字、下划线。

    // 符合规则的变量名
    int valid_variable_1;
    float _valid2;
    
    // 不符合规则的变量名
    // int invalid@variable;  // 包含了 @ 符号
    // float invalid variable; // 包含了空格
    • 不能以数字开头。

    // 符合规则的变量名
    int _start;
    char letterA;
    
    // 不符合规则的变量名
    // int 123number; // 以数字开头
    • 区分大小写(age 和 Age 是不同的变量)。

    #include <stdio.h>
    
    int main() {
        int myVariable = 10;
        int MyVariable = 20;
    
        printf("myVariable: %d\n", myVariable);
        printf("MyVariable: %d\n", MyVariable);
    
        return 0;
    }
    • 避免使用C语言关键字(如 intfor)。

    3. 基础语法:输入输出

    3.1 输出:printf()

    #include <stdio.h> 
    int main() {
        int age = 18;
        printf("Hello, Halo!\n");          // 输出字符串
        printf("我的年龄是:%d 岁\n", age);  // %d 表示整数占位符
        return 0;
    }

    3.2 输入:scanf()

    #include <stdio.h>
    
    int main() {
        int number;
        printf("请输入一个数字:");
        scanf("%d", &number);  // & 符号表示取地址
        printf("你输入的是:%d\n", number);
        return 0;
    }

    4. 运算符

    4.1 算术运算符

    int a = 10, b = 3;
    int sum = a + b;  // 13
    int sub = a - b;  // 7
    int mul = a * b;  // 30
    int div = a / b;  // 3(整数除法会丢弃小数部分)
    int mod = a % b;  // 1(取余)

    4.2 关系运算符

    int x = 5, y = 10;
    printf("%d\n", x > y);   // 0(假)
    printf("%d\n", x == 5);  // 1(真)

    4.3 逻辑运算符

    int a = 1, b = 0;
    printf("%d\n", a && b);  // 0(与运算)
    printf("%d\n", a || b);  // 1(或运算)
    printf("%d\n", !a);      // 0(非运算)

    最后:

                简单介绍下C语言新手需要了解的数据类型基础知识,虽然是慢工但是不是什么细活,下期见。












    「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
    关注作者
    【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    文章被以下合辑收录

    评论