本文共 1662 字,大约阅读时间需要 5 分钟。
C语言中的数据类型主要分为两大类:
内置类型:由C语言本身提供,常见类型包括:
char, short, int, long, float, double, boolstruct, union, enumvoid自定义类型:由程序员定义的类型,如typedef或struct,用于解决内置类型的不足。
类型的意义:
char, short, int, longunsigned char, unsigned short, unsigned int, unsigned longfloat, doublestruct用于结构体,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/