第1课_基本数据类型
热度🔥:87 免费课程
授课语音
C语言中的基本数据类型与自定义数据类型
C语言是一种功能强大的通用编程语言,提供了丰富的数据类型以满足不同应用场景的需求。掌握基本数据类型和自定义数据类型是学习C语言的基础。
1. 基本数据类型
C语言的基本数据类型可以分为以下几类:
1.1 整型(Integer)
- 类型:
int
、short
、long
、long long
- 特点: 表示整数类型,占用内存大小依赖于编译器和平台。
- 修饰符:
signed
(有符号)和unsigned
(无符号)。
代码示例:
#include <stdio.h>
int main() {
int a = 10; // 声明一个普通整型变量
unsigned int b = 20; // 声明一个无符号整型变量
short c = -5; // 声明一个短整型变量
long d = 100000L; // 声明一个长整型变量
long long e = 123456789LL; // 声明一个长长整型变量
printf("a = %d\n", a);
printf("b = %u\n", b);
printf("c = %d\n", c);
printf("d = %ld\n", d);
printf("e = %lld\n", e);
return 0;
}
详细中文注释:
int a = 10;
声明了一个普通整型变量a
,并赋值为10。unsigned int b = 20;
声明了一个无符号整型变量b
,仅能存储非负整数。short c = -5;
声明了一个短整型变量c
,占用内存较小。long d = 100000L;
声明了一个长整型变量d
,适合表示更大的整数。long long e = 123456789LL;
声明了一个长长整型变量e
,支持表示极大的整数范围。
1.2 浮点型(Floating Point)
- 类型:
float
、double
、long double
- 特点: 表示带小数的实数,适合科学计算。
代码示例:
#include <stdio.h>
int main() {
float f = 3.14f; // 声明一个单精度浮点型变量
double g = 3.1415926; // 声明一个双精度浮点型变量
long double h = 3.141592653589793L; // 声明一个长双精度浮点型变量
printf("f = %.2f\n", f);
printf("g = %.7f\n", g);
printf("h = %.15Lf\n", h);
return 0;
}
详细中文注释:
float f = 3.14f;
单精度浮点型,适合对精度要求不高的场景。double g = 3.1415926;
双精度浮点型,精度比float
更高。long double h = 3.141592653589793L;
长双精度浮点型,适合高精度运算。
2. 自定义数据类型
C语言允许用户创建自己的数据类型,以提高程序的可读性和模块化。
2.1 typedef
关键字
- 用于为已有类型定义新的类型名。
代码示例:
#include <stdio.h>
typedef unsigned int uint; // 为无符号整型定义新类型名
int main() {
uint x = 100; // 使用自定义类型名声明变量
printf("x = %u\n", x);
return 0;
}
详细中文注释:
typedef unsigned int uint;
定义uint
作为unsigned int
的别名。uint x = 100;
使用自定义类型名uint
声明变量x
。
2.2 结构体(struct
)
- 用于定义由多个不同类型数据组成的复杂数据类型。
代码示例:
#include <stdio.h>
// 定义一个结构体类型
struct Student {
int id; // 学号
char name[50]; // 姓名
float score; // 分数
};
int main() {
struct Student s1 = {1, "张三", 90.5}; // 定义并初始化结构体变量
printf("学号: %d\n", s1.id);
printf("姓名: %s\n", s1.name);
printf("分数: %.1f\n", s1.score);
return 0;
}
详细中文注释:
struct Student
定义了一个名为Student
的结构体类型。struct Student s1
声明了一个结构体变量s1
。s1.id = 1;
访问并赋值结构体的id
字段。
2.3 枚举类型(enum
)
- 用于定义一组具名的整数常量。
代码示例:
#include <stdio.h>
enum Day { MON, TUE, WED, THU, FRI, SAT, SUN };
int main() {
enum Day today = WED; // 定义并初始化枚举变量
printf("今天是: %d\n", today);
return 0;
}
详细中文注释:
enum Day
定义了一个表示星期的枚举类型。- 枚举变量
today
被初始化为WED
,对应值为2(从0开始计数)。
2.4 联合体(union
)
- 用于节省内存,所有成员共享一块内存。
代码示例:
#include <stdio.h>
// 定义一个联合体类型
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data data;
data.i = 10;
printf("data.i = %d\n", data.i);
data.f = 3.14;
printf("data.f = %.2f\n", data.f);
sprintf(data.str, "Hello");
printf("data.str = %s\n", data.str);
return 0;
}
详细中文注释:
union Data
定义了一个联合体,成员包括int
、float
和字符串。- 联合体的所有成员共享内存,因此每次只能保存一个值。
通过以上知识和代码案例,掌握C语言的基本数据类型与自定义数据类型可以为编程奠定坚实基础。