查看: 91|回复: 0

C 语言数据类型介绍

[复制链接]

3

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-3-25 17:31:37 | 显示全部楼层 |阅读模式
C 语言基本数据类型

在 C 语言中,基本数据类型有以下几种:
整型(int)

整型是表示整数的数据类型,它可以分为有符号整型和无符号整型两种。有符号整型可以表示正数、负数和零,无符号整型则只能表示非负数。
int a = 10;        // 声明一个有符号整型变量a,初始值为10
unsigned int b = 20;  // 声明一个无符号整型变量b,初始值为20浮点型(float 和 double)

浮点型是表示实数的数据类型,它可以分为单精度浮点型和双精度浮点型两种。单精度浮点型可以表示小数点前后共 7 位数字,双精度浮点型则可以表示小数点前后共 15 位数字。
float x = 1.23f;     // 声明一个单精度浮点型变量x,初始值为1.23
double y = 4.56;     // 声明一个双精度浮点型变量y,初始值为4.56字符型(char)

字符型是表示字符的数据类型,它可以存储单个字符,包括数字、字母、符号和空格等。
char c = 'A';       // 声明一个字符型变量c,初始值为字符'A'布尔类型

布尔类型用于表示逻辑值,只有两个取值:true 和 false。在 C 语言中,布尔类型没有独立的数据类型,通常用 int 类型来表示,0 表示 false,非零值表示 true。
#include <stdio.h>

bool b = true;  // 声明一个布尔变量b,初始值为true
if (b) {
    printf("b的值为true\n");
} else {
    printf("b的值为false\n");
}C 语言高级数据类型

除了基本数据类型,C 语言还提供了一些高级数据类型,包括字符串、数组、结构体和联合体。
字符串

字符串是一串字符的集合,用一对双引号括起来表示。在 C 语言中,字符串实际上是一个字符数组,以空字符'\0'作为结尾。
char str[] = "Hello world";   // 声明一个字符串变量str,初始值为"Hello world"数组

数组是一组相同类型的变量的集合,每个变量都有一个唯一的下标。在 C 语言中,数组可以分为一维数组和多维数组两种。
int a[] = {1, 2, 3, 4, 5};   // 声明一个一维整型数组a,初始值为{1, 2, 3, 4, 5}
int b[][2] = {{1, 2}, {3, 4}, {5, 6}};  // 声明一个二维整型数组b,初始值为{{1, 2}, {3, 4}, {5, 6}}结构体

结构体是一种自定义的数据类型,它可以由不同类型的数据组成一个整体。在 C 语言中,结构体是由一组有关联的变量组成的数据类型,可以使用 "." 访问结构体。
struct Student {
    char name[20];   // 学生姓名
    int age;         // 学生年龄
    float score;     // 学生成绩
};

struct Student stu = {"张三", 18, 90.5};  // 声明一个学生结构体变量stu,初始值为{"张三", 18, 90.5}
printf("姓名:%s,年龄:%d,成绩:%.1f\n", stu.name, stu.age, stu.score);联合体

联合体也是一种自定义的数据类型,它可以表示多种不同类型的数据,但同一时间只能存储其中一种类型的数据。在 C 语言中,联合体中所有成员共用同一段内存空间。
union Data {
    int i;
    float f;
    char str[20];
};

union Data data;
data.i = 10;
printf("整型变量data.i的值为:%d\n", data.i);
data.f = 3.14;
printf("浮点型变量data.f的值为:%.2f\n", data.f);
strcpy(data.str, "Hello");
printf("字符型数组变量data.str的值为:%s\n", data.str);枚举类型

枚举类型也是一种自定义的数据类型,它可以将一些常量值命名为一个集合,并且可以通过名称来引用这些常量值。在 C 语言中,枚举类型是由一组枚举常量和一个枚举变量组成的。
enum Color {RED, GREEN, BLUE};

enum Color c = RED;  // 声明一个枚举变量c,初始值为RED
if (c == RED) {
    printf("c的值为RED\n");
} else if (c == GREEN) {
    printf("c的值为GREEN\n");
} else if (c == BLUE) {
    printf("c的值为BLUE\n");
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表