目录
1. 基本数据类型
整型
浮点型
字符型
2. 构造数据类型
数组
结构体
联合体(共用体)
枚举类型
3. 指针类型
4. 空类型
在 C 语言中,数据类型是非常重要的概念,它决定了数据在内存中的存储方式、占用空间大小以及可进行的操作。C 语言的数据类型主要分为基本数据类型、构造数据类型、指针类型和空类型,下面详细介绍:
基本数据类型是 C 语言中最基础的数据类型,是构建其他复杂数据类型的基石。
int
int
通常占用 4 个字节(32 位),取值范围大约是 -2147483648 到 2147483647。#include
int main() {
int num = 123;
printf("整数: %d\n", num);
return 0;
}
short
(短整型)
int
小,大约是 -32768 到 32767。#include
int main() {
short s = 100;
printf("短整型: %hd\n", s);
return 0;
}
long
(长整型)
long
通常占用 4 个字节;在 64 位系统中,一般占用 8 个字节(64 位)。其取值范围比 int
更大。#include
int main() {
long l = 123456789L;
printf("长整型: %ld\n", l);
return 0;
}
long long
(更长的长整型)
#include
int main() {
long long ll = 123456789012345LL;
printf("更长的长整型: %lld\n", ll);
return 0;
}
float
(单精度浮点型)
#include
int main() {
float f = 3.14f;
printf("单精度浮点型: %f\n", f);
return 0;
}
double
(双精度浮点型)
float
更高。#include
int main() {
double d = 3.1415926;
printf("双精度浮点型: %lf\n", d);
return 0;
}
char
#include
int main() {
char ch = 'A';
printf("字符: %c\n", ch);
printf("字符的ASCII码值: %d\n", ch);
return 0;
}
构造数据类型是由基本数据类型或其他构造数据类型组合而成的数据类型。
#include
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}
#include
// 定义结构体
struct Student {
char name[20];
int age;
float score;
};
int main() {
struct Student s = {"Tom", 20, 85.5};
printf("姓名: %s\n", s.name);
printf("年龄: %d\n", s.age);
printf("成绩: %f\n", s.score);
return 0;
}
#include
// 定义联合体
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data data;
data.i = 10;
printf("整型值: %d\n", data.i);
data.f = 3.14f;
printf("浮点型值: %f\n", data.f);
return 0;
}
#include
// 定义枚举类型
enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
};
int main() {
enum Weekday today = WEDNESDAY;
printf("今天是一周中的第 %d 天(从0开始计数)\n", today);
return 0;
}
#include
int main() {
int num = 10;
int *ptr = # // 定义一个指向整型变量的指针,并初始化为num的地址
printf("变量num的值: %d\n", num);
printf("指针ptr指向的值: %d\n", *ptr);
*ptr = 20; // 通过指针修改num的值
printf("修改后变量num的值: %d\n", num);
return 0;
}
void
表示空类型,主要用于以下几种情况:
void func()
。int func(void)
。void *ptr
,可以指向任意类型的数据,但在使用时需要进行类型转换。#include
// 函数返回值为空
void printMessage() {
printf("这是一个无返回值的函数。\n");
}
// 函数参数为空
int getValue(void) {
return 100;
}
int main() {
printMessage();
int val = getValue();
printf("getValue函数返回的值: %d\n", val);
int num = 20;
void *ptr = # // 定义一个void指针
int *intPtr = (int *)ptr; // 类型转换
printf("通过void指针访问的值: %d\n", *intPtr);
return 0;
}