C语言基础数据类型
C语言------基础数据类型
思考、实践、总结、交流,八字真言是学习任何一门知识的内功,尤其是在很方便用鸡皮提的时代中,独立思考是很重要的。
一个 C 语言工程由多个
.c
(源码文件).h
(头文件)组成。.c
文件是实现逻辑的地方,包含函数的具体实现。.h
文件是声明接口的地方,用于定义函数、变量、宏等,使模块间可以通信。
1. 数据类型概述
C语言的数据类型是变量存储和操作的基础。每种数据类型决定了变量的存储大小、表示范围以及适用场景。
C语言的数据类型可以分为以下几类:
- 基本类型:如
int
、float
、double
、char
、void
。 - 派生类型:如数组、指针、结构体、联合体等。
- 自定义类型:如
enum
、typedef
。
2. 常见的基本数据类型
数据类型 | 字节数(一般情况) | 取值范围(32位系统) | 描述 |
---|---|---|---|
int | 4 字节 | -2,147,483,648 ~ 2,147,483,647 | 表示整数类型 |
float | 4 字节 | ±3.4E-38 ~ ±3.4E+38(6-7位精度) | 表示单精度浮点数 |
double | 8 字节 | ±1.7E-308 ~ ±1.7E+308(15-16位精度) | 表示双精度浮点数 |
char | 1 字节 | -128 ~ 127(有符号) 0 ~ 255(无符号) | 表示单个字符或小整数 |
void | 无 | 无 | 表示无类型,多用于函数返回值为空的场景 |
3. 数据类型的详细说明
3.1 int
类型
-
用于存储整数(正数、负数和零)。
-
默认占用 4字节,在32位系统上通常取值范围为
-2^31
到2^31 - 1
。 -
示例代码:
cCopy codeint a = 100; // 定义一个整型变量 printf("a = %d\n", a);
3.2 float
类型
-
用于表示单精度浮点数,通常占用 4字节。
-
通常可精确到小数点后 6-7位。
-
示例代码:
cCopy codefloat pi = 3.14f; // 定义一个浮点型变量 printf("pi = %f\n", pi);
3.3 double
类型
-
用于表示双精度浮点数,通常占用 8字节。
-
通常可精确到小数点后 15-16位。
-
示例代码:
cCopy codedouble radius = 6.283185; printf("Radius = %lf\n", radius);
3.4 char
类型
-
用于存储单个字符或小整数。
-
通常占用 1字节,在有符号模式下取值范围是
-128
到127
,在无符号模式下是0
到255
。 -
示例代码:
cCopy codechar grade = 'A'; // 定义一个字符变量 printf("Grade = %c\n", grade);
3.5 void
类型
-
表示无类型。
-
通常用于:
-
函数返回值为空:
cCopy codevoid printMessage() { printf("Hello, World!\n"); }
-
表示空指针:
void *ptr = NULL;
-
4. 使用 sizeof
查看数据类型的字节数
-
sizeof
运算符可以用来查看数据类型或变量的存储字节数。 -
示例代码:
cCopy code#include <stdio.h> int main() { printf("Size of int: %d bytes\n", sizeof(int)); printf("Size of float: %d bytes\n", sizeof(float)); printf("Size of double: %d bytes\n", sizeof(double)); printf("Size of char: %d bytes\n", sizeof(char)); return 0; }
-
输出:
5. 特别注意:数据类型的取值范围
-
有符号与无符号:
-
signed
(有符号):包括正数和负数。 -
unsigned
(无符号):只能表示非负数,取值范围加倍。 -
示例:
cCopy codesigned char a = -100; // 有符号 unsigned char b = 200; // 无符号 printf("a = %d, b = %u\n", a, b);
-
-
数据类型大小依赖于系统架构:
- 在32位系统和64位系统上,
long
和int
的字节数可能不同。 - 可以使用
<stdint.h>
中的类型(如int32_t
)指定精确大小。
- 在32位系统和64位系统上,