C语言中的数据类型用于定义变量的类型和大小。C语言的数据类型可以分为以下几类:
1. 基本数据类型(Primary Data Types)
C语言的基本数据类型包括:
(1) 整数类型(Integer Types)
int a = 10;
unsigned int b = 40000;
short c = 100;
long d = 1000000;
(2) 浮点类型(Floating-Point Types)
用于存储小数或实数。
常见类型:
float
:单精度浮点数,通常为4字节,精度约6-7位小数。
double
:双精度浮点数,通常为8字节,精度约15位小数。
long double
:扩展精度浮点数,通常为10字节或更多。
float f = 3.14f;
double d = 3.1415926535;
long double ld = 3.141592653589793238L;
(3) 字符类型(Character Type)
char ch = 'A';
(4) 无类型(Void Type)
void function() {
// 无返回值
}
2. 派生数据类型(Derived Data Types)
派生数据类型是基于基本数据类型构建的,包括:
(1) 数组(Array)
int numbers[5] = {1, 2, 3, 4, 5};
(2) 指针(Pointer)
int a = 10;
int *p = &a; // p指向a的地址
(3) 函数(Function)
int add(int a, int b) {
return a + b;
}
(4) 结构体(Structure)
struct Person {
char name[50];
int age;
};
(5) 联合体(Union)
union Data {
int i;
float f;
char ch;
};
3. 枚举类型(Enumeration Type)
enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday};
enum Weekday today = Wednesday;
4. 类型修饰符(Type Modifiers)
C语言提供了一些修饰符来改变数据类型的含义:
signed
:表示有符号数(默认)。
unsigned
:表示无符号数。
short
:缩短数据类型的大小。
long
:扩展数据类型的大小。
unsigned int x = 40000;
long double y = 3.141592653589793238L;
5. 数据类型的大小
数据类型的大小可能因编译器和平台而异。可以使用sizeof
运算符查看数据类型的大小。
printf("Size of int: %lu bytes\n", sizeof(int));
printf("Size of float: %lu bytes\n", sizeof(float));
printf("Size of double: %lu bytes\n", sizeof(double));
6. 类型转换
C语言支持隐式和显式类型转换:
隐式转换:编译器自动完成。
显式转换:使用强制类型转换运算符。
int a = 10;
float b = (float)a; // 显式转换
总结
C语言的数据类型包括基本类型(如int
、float
、char
)、派生类型(如数组、指针、结构体)以及枚举类型。理解这些数据类型是编写C程序的基础。