第三章 数据和 C——《C Primer Plus》笔记

3.1 示例程序

3.2 变量与常量数据

常量:数据类型在程序运行之前已经预先设定好,在整个程序的运行过程中没有变化(也不能被改变)。

变量:数据类型在程序运行期间可能会改变或被赋值。

3.3 数据:数据类型关键字

表 3.1 C 语言的数据类型关键字

最初的 K&R 给出的关键字 C90 标准添加的关键字 C99 标准添加的关键字
int signed _Bool
long void _Complex
short _Imaginary
unsigned
char
float
double

位(bit):**最小存储单元;

字节(byte):**常用的计算机存储单位,一般 1 字节为 8 位;

字(word):**设计计算机时给定的自然存储单位;

3.4 C 语言基本数据类型

  1. int 类型

    有符号整型,可以是正整数、负整数或零。取值范围依计算机系统而异。一般存储一个 int 要占用一个机器字长

    整型常量或整型字面量:21、33。

    0x/0X 前缀表示十六进制;0 前缀表示八进制。

  2. 其他整型类型

    short int/shortlong int/longlong long int/long longunsigned int/unsigned

    C90 添加了 unsigned long int/unsigned longunsigned intunsigned short 类型。

    C99 又添加了 unsigned long long int/unsigned long long 类型。

    l/L 后缀表示 long 类型;ll/LL 后缀表示 long long 类型。

    C 标准只规定了 short <= int <= long

    C 标准只规定了基本数据类型的最小取值范围。

    C 标准并未规定有符号类型的溢出规则。

  3. char 类型

    占用 1 字节。

    字符常量:'A''X'

  4. _Bool 类型(C99)

  5. 可移植类型:stdint.h 和 inttypes.h(C99 和 C11)

    精确宽度整数类型(exact-width integer type):**int32_tuint32_t

    最小宽度类型(minimum width type):**int_least8_t

    最快最小宽度类型(fastest minimum width type):**int_fast8_t

    打印 int32_t 使用 PRId32 字符串宏,会自动替换为 "d"/"ld" 如:

    printf("int32_t: %" PRId32 "\r\n");
    
  6. 浮点数

    floatdoublelong double

    浮点数常量:-1.56E+122.87e-33.14159.24e16.8E-5100.。默认为 double 类型。

    f/F 后缀表示 floatl/L 后缀表示 long double 类型。

    上溢(overflow):**会赋一个表示 无穷大的特定值,用 printf 会显示为 infinfinity

    下溢(underflow):**损失了类型全精度的浮点值为低于正常的(subnormal)浮点值;

    NaN(not a number):特殊的浮点值,表示无效,用 printf 会显示为 nanNaN 或其他类似内容。

    浮点数运算要时刻注意精度问题。浮点计算标准 ISO/IEC/IEEE 60559:2011C99C11 可选支持。

  7. 复数和叙述类型

    复数:float_Complexdouble_Complexlong double_Complex

    虚数:float_Imaginarydouble_Imaginarylong double_Imaginary

3.5 使用数据类型

3.6 参数和陷阱

注意用 printf 时参数个数和数据类型要一致。

3.7 转义序列示例

"\n" 会刷新输出缓冲区,或者调用 fflush()

你可能感兴趣的:(第三章 数据和 C——《C Primer Plus》笔记)