C入门系列:第一章 基本类型

    xiaoxiao2023-11-28  160

    C入门系列:第一章 基本类型

    C入门系列:第二章 字符串

    C入门系列:第三章 函数

    C入门系列:第四章 数组和指针

    C入门系列:第五章 数据存储类别和内存管理

    C入门系列:第六章 文件输入/输出

    C入门系列:第七章 结构和其他数据形式

    C入门系列:第八章 C预处理器和C库

    文章目录

    1 int类型1.1 八进制和十六进制的表示1.2 其他整数类型1.3 变量声明 2 char类型2.1 其他类型 3 可移植类型4 float、double和long double5 复数和虚数6 类型大小

    1 int类型

    1.1 八进制和十六进制的表示

    0x或0X前缀表示十六进制值;0前缀表示八进制 printf("%d", xxx); // 十进制打印 printf("%o", xxx); // 八进制打印 printf("%#o", xxx); // 八进制打印,显示前缀 printf("%lo", xxx); // 八进制的long类型 printf("%ho", xxx); // 八进制的short类型 printf("%x", xxx); // 十六进制打印 printf("%#x", xxx); // 十六进制打印,显示前缀 printf("%lx", xxx); // 十六进制的long类型 printf("%hx", xxx); // 十六进制的short类型 printf("%u", xxx); // unsigned int类型 printf("%ld", xxx); // long类型 printf("%hd" xxx); // short类型 printf("%ul" xxx); // unsigned long类型 printf("%lld", xxx); // long long类型 printf("%llu" xxx); // unsigned long long类型

    1.2 其他整数类型

    类型描述shortlonglong longunsigned只用于非负值unsigned shortunsigned longunsigned long longsigned在类型前添加关键字signed表示有符号类型,与short、long等有符号类型相同

    1.3 变量声明

    long long类型可以变量声明10l或10L表示;unsigned long long类型可以变量声明10ull或10ULL表示,在变量前添加类型前缀表示。

    2 char类型

    printf("%c", xxx); printf("%d", xxx); // 打印字符对应的ASCII码值

    2.1 其他类型

    类型描述unsigned char_Bool类型C99添加了_Bool类型表示布尔值,即逻辑值true和false,1表示true,0表示false

    3 可移植类型

    C99新增了两个头文件 stdint.h 和 inttypes.h ,以确保C语言的类型在各系统中的功能相同。

    stdint.h 头文件定义的一些类型:

    类型描述int32_t表示32位的有符号整数类型,在不同系统代表不同类型,如32位int系统是int类型,int为16位、long为32位系统中表示long类型;属于精确宽度整数类型,计算机底层系统可能不支持int_least8_t表示可容纳8位有符号整数值的类型中宽度最小的类型的一个别名。如果某系统的最小整数类型是16位,可能不会定义int8_t类型,该系统仍可使用int_least8_t类型,但可能把该类型实现为16位的整数类型;属于最小宽度类型,用于在不支持精确宽度整数类型使用int_fast8_t被定义为系统中对8位有符号值而言运算最快的整数类型的别名;属于最快最小宽度类型intmax_t有符号最大整数类型,可存储任何有效的有符号整数值;有可能比long long或unsigned long类型更大unitmax_t表示最大的无符号整数类型;有可能比long long或unsigned long类型更大 #include<stdio.h> #include<inttypes.h> int main(void) { int32_t me32 = 45933945; printf("me32 = %d\n", me32); // PRId32被定义在inttypes.h中替换"d",等价于 // printf("me32 = %d\n", me32); printf("me32 = %" PRId32 "\n", me32); }

    4 float、double和long double

    e后面的数字代表10的指数

    pinrtf("%f", xxx); // float和double类型 printf("%e", xxx); // 指数计数法 printf("%Lf", xxx); // long double类型

    5 复数和虚数

    3种复数类型:

    类型描述float_Complex包含两个float类型,分别表示复数的实部和虚部double_Complexlong double_Complex

    3种虚数类型:

    类型float_Imaginarydouble_Imaginarylong double_Imaginary

    如果包含 complex.h 头文件,可用complex代替_Complex,imaginary代替_Imaginary,还可以用I代替-1的平方根。

    6 类型大小

    #include<stdio.h> int main(void) { printf("%zd", sizeof(int)); // 4 bytes printf("%zd", sizeOf(char)); // 1 bytes printf("%zd", sizeof(long)); // 8 bytes printf("%zd", sizeof(long long)); // 8 bytes printf("%zd", sizeof(double)) // 8 bytes printf("%zd", sizeof(long double)); // 16 bytes }
    最新回复(0)