本文共 1662 字,大约阅读时间需要 5 分钟。
C语言中的数据类型主要分为两大类:
内置类型:由C语言本身提供,常见类型包括:
char
, short
, int
, long
, float
, double
, bool
struct
, union
, enum
void
自定义类型:由程序员定义的类型,如typedef
或struct
,用于解决内置类型的不足。
类型的意义:
char
, short
, int
, long
unsigned char
, unsigned short
, unsigned int
, unsigned long
float
, double
struct
用于结构体,union
用于联合体类型,enum
用于枚举类型。void
类型用于占位,默认不分配任何内存。由于补码的优势,计算机统一用补码存储和运算,减少硬件复杂度。
判断端模式:
int main() { int a = 1; char* p = (char*)&a; printf("%d", *p); // 如果0,说明小端,1则大端 return 0;}
char a = -1;signed char b = -1;unsigned char c = -1;// 在Visual Studio下,char、signed char、unsigned char占用相同字节数(1字节)// 输出:a = -1, b = -1, c = -1(实际值取决于编译器定义)
char a = 128; // 输出为 )|(如果编译通过,可能导致无法正确定义,需避免负值)// char默认为`signed`,-128到127取值
int main() { int i = -20; unsigned int j = 10; printf("%d", i + j); // 输出-10}
unsigned int i = 0;for (i = 9; i >=0; i--) { // 死循环,因无符号数恒≥0}
char arr[1000];for (int i = 0; i < 1000; i++) { arr[i] = -1 - i;}// 数组元素从-1到0,`strlen`在遇到\0时停止,计算长度255(包括\0)
Sleep
:unsigned int i = 0;for (i = 9; i >=0; i--) { printf("%u\n", i); Sleep(1000);}
unsigned int i = 0;for (i =9; i <=255; i++) { // 死循环打印“hello world”}
本章涵盖了C语言中核心的数据类型分类、存储方式以及大小端问题,理解这些概念有助于更好地进行内存管理和跨平台开发。尽管我在细节处理上仍需加强,但通过不断实践,我相信能够逐步掌握这些重要知识点。
转载地址:http://jliuk.baihongyu.com/