返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版][]C语言程序设计 现代方法 2版修订版 c语言程序设计编程入门cprimerplus计算机基础网络电脑书籍自学
  • 本店商品限购一件,多拍不发货,谢谢合作
    • 作者: K.N.金著
    • 出版社: 人民邮电出版社
    • 出版时间:2021-07
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    如梦图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: K.N.金著
    • 出版社:人民邮电出版社
    • 出版时间:2021-07
    • ISBN:9785327367092
    • 版权提供:人民邮电出版社

                                                        店铺公告

    为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。 温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货), 关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。


    内容介绍

    时到现在,C语言仍然是计算机领域的通用语言之一,但现-在的C语言已经和*初的时候大不相同了。本书主要目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化”。*2版修订版中不仅有C99中的新特性,还与时俱进地增加了C11和C18中的内容。本书分为C语言的基础特性、C语言的*级特性、C语言标准库和参考资料4个部分。每章末尾的“问与答”部分给出一系列与该章内容相关的问题及答案,此外还包含适量的习题。 本书是C开发人员的理想参考书,在国外也被众多大学作为C语言课程的教材。
    目录

    第 1章 C语言概述 1
    1.1 C语言的历史 1
    1.1.1 起源 1
    1.1.2 标准化 1
    1.1.3 基于C的语言 2
    1.2 C语言的优缺点 3
    1.2.1 C语言的优点 3
    1.2.2 C语言的缺点 4
    1.2.3 高效地使用C语言 5
    问与答 5
    第 2章 C语言基本概念 7
    2.1 编写一个简单的C程序 7
    2.1.1 编译和链接 8
    2.1.2 集成开发环境 9
    2.2 简单程序的一般形式 9
    2.2.1 指令 9
    2.2.2 函数 9
    2.2.3 语句 10
    2.2.4 显示字符串 11
    2.3 注释 11
    2.4 变量和赋值 13
    2.4.1 类型 13
    2.4.2 声明 13
    2.4.3 赋值 14
    2.4.4 显示变量的值 15
    2.4.5 初始化 16
    2.4.6 显示表达式的值 17
    2.5 读入输入 17
    2.6 定义常量的名字 18
    2.7 标识符 19
    2.8 C 程序的书写规范 21
    问与答 23
    练习题 25
    编程题 26
    第3章 格式化输入/输出 28
    3.1 printf函数 28
    3.1.1 转换说明 29
    3.1.2 转义序列 31
    3.2 scanf函数 31
    3.2.1 scanf函数的工作方法 32
    3.2.2 格式串中的普通字符 34
    3.2.3 易混淆的printf函数和scanf函数 34
    问与答 35
    练习题 37
    编程题 38
    第4章 表达式 40
    4.1 算术运算符 40
    4.2 赋值运算符 44
    4.2.1 简单赋值 44
    4.2.2 左值 45
    4.2.3 复合赋值 45
    4.3 自增运算符和自减运算符 46
    4.4 表达式求值 47
    4.5 表达式语句 50
    问与答 50
    练习题 52
    编程题 54
    第5章 选择语句 56
    5.1 逻辑表达式 56
    5.1.1 关系运算符 56
    5.1.2 判等运算符 57
    5.1.3 逻辑运算符 57
    5.2 if语句 58
    5.2.1 复合语句 59
    5.2.2 else子句 59
    5.2.3 级联式if语句 61
    5.2.4 “悬空else”的问题 63
    5.2.5 条件表达式 63
    5.2.6 C89中的布尔值 64
    5.2.7 C99中的布尔值 65
    5.3 switch语句 66
    问与答 69
    练习题 72
    编程题 74
    第6章 循环 77
    6.1 while语句 77
    6.2 do语句 80
    6.3 for语句 82
    6.3.1 for语句的惯用法 83
    6.3.2 在for语句中省略表达式 83
    6.3.3 C99中的for语句 84
    6.3.4 逗号运算符 84
    6.4 退出循环 86
    6.4.1 break语句 87
    6.4.2 continue语句 87
    6.4.3 goto语句 88
    6.5 空语句 90
    问与答 92
    练习题 94
    编程题 95
    第7章 基本类型 97
    7.1 整数类型 97
    7.1.1 C99中的整数类型 99
    7.1.2 整型常量 99
    7.1.3 C99中的整型常量 100
    7.1.4 整数溢出 100
    7.1.5 读/写整数 101
    7.2 浮点类型 102
    7.2.1 浮点常量 103
    7.2.2 读/写浮点数 103
    7.3 字符类型 104
    7.3.1 字符操作 104
    7.3.2 有符号字符和无符号字符 105
    7.3.3 算术类型 105
    7.3.4 转义序列 106
    7.3.5 字符处理函数 107
    7.3.6 用scanf和printf读/写字符 108
    7.3.7 用getchar和putchar读/写字符 108
    7.4 类型转换 110
    7.4.1 常规算术转换 111
    7.4.2 赋值过程中的转换 112
    7.4.3 C99中的隐式转换 113
    7.4.4 强制类型转换 114
    7.5 类型定义 115
    7.5.1 类型定义的优点 115
    7.5.2 类型定义和可移植性 116
    7.6 sizeof运算符 117
    问与答 117
    练习题 120
    编程题 121
    第8章 数组 124
    8.1 一维数组 124
    8.1.1 数组下标 124
    8.1.2 数组初始化 126
    8.1.3 指示器 127
    8.1.4 对数组使用sizeof运算符 129
    8.2 多维数组 130
    8.2.1 多维数组初始化 131
    8.2.2 常量数组 132
    8.3 C99 中的变长数组 134
    问与答 135
    练习题 136
    编程题 138
    第9章 函数 141
    9.1 函数的定义和调用 141
    9.1.1 函数定义 144
    9.1.2 函数调用 145
    9.2 函数声明 147
    9.3 实际参数 149
    9.3.1 实际参数的转换 150
    9.3.2 数组型实际参数 151
    9.3.3 变长数组形式参数 153
    9.3.4 在数组参数声明中使用static 154
    9.3.5 复合字面量 155
    9.4 return语句 155
    9.5 程序终止 156
    9.6 递归 157
    9.7 泛型选择 161
    问与答 163
    练习题 166
    编程题 169
    第 10章 程序结构 171
    10.1 局部变量 171
    10.1.1 静态局部变量 172
    10.1.2 形式参数 172
    10.2 外部变量 172
    10.2.1 示例:用外部变量实现栈 172
    10.2.2 外部变量的利与弊 173
    10.3 程序块 177
    10.4 作用域 178
    10.5 构建C程序 179
    问与答 185
    练习题 185
    编程题 186
    第 11章 指针 188
    11.1 指针变量 188
    11.2 取地址运算符和间接寻址运算符 189
    11.2.1 取地址运算符 189
    11.2.2 间接寻址运算符 190
    11.3 指针赋值 191
    11.4 指针作为参数 192
    11.5 指针作为返回值 195
    问与答 196
    练习题 198
    编程题 199
    第 12章 指针和数组 201
    12.1 指针的算术运算 201
    12.1.1 指针加上整数 202
    12.1.2 指针减去整数 202
    12.1.3 两个指针相减 203
    12.1.4 指针比较 203
    12.1.5 指向复合字面量的指针 203
    12.2 指针用于数组处理 204
    12.3 用数组名作为指针 206
    12.3.1 数组型实际参数(改进版) 207
    12.3.2 用指针作为数组名 208
    12.4 指针和多维数组 209
    12.4.1 处理多维数组的元素 209
    12.4.2 处理多维数组的行 210
    12.4.3 处理多维数组的列 210
    12.4.4 用多维数组名作为指针 210
    12.5 C99中的指针和变长数组 211
    问与答 212
    练习题 213
    编程题 215
    第 13章 字符串 217
    13.1 字面串 217
    13.1.1 字面串中的转义序列 217
    13.1.2 延续字面串 218
    13.1.3 如何存储字面串 218
    13.1.4 字面串的操作 219
    13.1.5 字面串与字符常量 219
    13.2 字符串变量 220
    13.2.1 初始化字符串变量 220
    13.2.2 字符数组与字符指针 221
    13.3 字符串的读和写 222
    13.3.1 用printf函数和puts函数写字符串 222
    13.3.2 用scanf函数读字符串 223
    13.3.3 逐个字符读字符串 224
    13.4 访问字符串中的字符 225
    13.5 使用C语言的字符串库 226
    13.5.1 strcpy函数 226
    13.5.2 strlen函数 227
    13.5.3 strcat函数 228
    13.5.4 strcmp函数 229
    13.6 字符串惯用法 231
    13.6.1 搜索字符串的结尾 232
    13.6.2 复制字符串 233
    13.7 字符串数组 235
    问与答 238
    练习题 241
    编程题 243
    第 14章 预处理器 246
    14.1 预处理器的工作原理 246
    14.2 预处理指令 248
    14.3 宏定义 248
    14.3.1 简单的宏 249
    14.3.2 带参数的宏 250
    14.3.3 #运算符 252
    14.3.4 ##运算符 253
    14.3.5 宏的通用属性 254
    14.3.6 宏定义中的圆括号 254
    14.3.7 创建较长的宏 255
    14.3.8 预定义宏 256
    14.3.9 C99中新增的预定义宏 257
    14.3.10 空的宏参数 258
    14.3.11 参数个数可变的宏 259
    14.3.12 __func__标识符 260
    14.4 条件编译 260
    14.4.1 #if指令和#endif指令 260
    14.4.2 defined运算符 261
    14.4.3 #ifdef指令和#ifndef指令 261
    14.4.4 #elif指令和#else指令 262
    14.4.5 使用条件编译 262
    14.5 其他指令 263
    14.5.1 #error指令 263
    14.5.2 #line指令 264
    14.5.3 #pragma指令 265
    14.5.4 _Pragma运算符 265
    问与答 266
    练习题 268
    第 15章 编写大型程序 272
    15.1 源文件 272
    15.2 头文件 273
    15.2.1 #include指令 273
    15.2.2 共享宏定义和类型定义 274
    15.2.3 共享函数原型 275
    15.2.4 共享变量声明 277
    15.2.5 嵌套包含 278
    15.2.6 保护头文件 278
    15.2.7 头文件中的#error指令 279
    15.3 把程序划分成多个文件 279
    15.4 构建多文件程序 285
    15.4.1 makefile 285
    15.4.2 链接期间的错误 287
    15.4.3 重新构建程序 287
    15.4.4 在程序外定义宏 289
    问与答 289
    练习题 291
    编程题 292
    第 16章 结构、联合和枚举 293
    16.1 结构变量 293
    16.1.1 结构变量的声明 293
    16.1.2 结构变量的初始化 295
    16.1.3 指示器 295
    16.1.4 对结构的操作 296
    16.2 结构类型 296
    16.2.1 结构标记的声明 297
    16.2.2 结构类型的定义 298
    16.2.3 结构作为参数和返回值 298
    16.2.4 复合字面量 299
    16.2.5 匿名结构 300
    16.3 嵌套的数组和结构 301
    16.3.1 嵌套的结构 301
    16.3.2 结构数组 302
    16.3.3 结构数组的初始化 302
    16.4 联合 309
    16.4.1 用联合来节省空间 310
    16.4.2 用联合来构造混合的数据结构 312
    16.4.3 为联合添加“标记字段” 312
    16.4.4 匿名联合 313
    16.5 枚举 314
    16.5.1 枚举标记和类型名 315
    16.5.2 枚举作为整数 315
    16.5.3 用枚举声明“标记字段” 316
    问与答 316
    练习题 318
    编程题 323
    第 17章 指针的*级应用 324
    17.1 动态存储分配 324
    17.1.1 内存分配函数 325
    17.1.2 空指针 325
    17.2 动态分配字符串 326
    17.2.1 使用malloc函数为字符串分配内存 326
    17.2.2 在字符串函数中使用动态存储分配 327
    17.2.3 动态分配字符串的数组 327
    17.3 动态分配数组 329
    17.3.1 使用malloc函数为数组分配存储空间 329
    17.3.2 calloc函数 330
    17.3.3 realloc函数 330
    17.4 释放存储空间 331
    17.4.1 free函数 332
    17.4.2 “悬空指针”问题 332
    17.5 链表 332
    17.5.1 声明结点类型 333
    17.5.2 创建结点 333
    17.5.3 ->运算符 334
    17.5.4 在链表的开始处插入结点 335
    17.5.5 搜索链表 337
    17.5.6 从链表中删除结点 338
    17.5.7 有序链表 339
    17.6 指向指针的指针 344
    17.7 指向函数的指针 345
    17.7.1 函数指针作为参数 345
    17.7.2 qsort函数 346
    17.7.3 函数指针的其他用途 347
    17.8 受限指针 350
    17.9 弹性数组成员 351
    问与答 352
    练习题 355
    编程题 358
    第 18章 声明 359
    18.1 声明的语法 359
    18.2 存储类型 360
    18.2.1 变量的性质 361
    18.2.2 auto存储类型 361
    18.2.3 static存储类型 362
    18.2.4 extern存储类型 363
    18.2.5 register存储类型 363
    18.2.6 函数的存储类型 364
    18.2.7 小结 365
    18.3 类型限定符 366
    18.4 声明符 366
    18.4.1 解释复杂声明 368
    18.4.2 使用类型定义来简化声明 369
    18.5 初始化器 369
    18.6 内联函数 371
    18.6.1 内联定义 371
    18.6.2 对内联函数的限制 372
    18.6.3 在GCC中使用内联函数 372
    18.7 函数指定符_Noreturn和头<stdnoreturn.h> 373
    18.8 静态断言 373
    问与答 374
    练习题 377
    第 19章 程序设计 379
    19.1 模块 379
    19.1.1 内聚性与耦合性 381
    19.1.2 模块的类型 381
    19.2 信息隐藏 381
    19.3 抽象数据类型 385
    19.3.1 封装 385
    19.3.2 不完整类型 386
    19.4 栈抽象数据类型 386
    19.4.1 为栈抽象数据类型定义接口 386
    19.4.2 用定长数组实现栈抽象数据类型 388
    19.4.3 改变栈抽象数据类型中数据项的类型 389
    19.4.4 用动态数组实现栈抽象数据类型 390
    19.4.5 用链表实现栈抽象数据类型 392
    19.5 抽象数据类型的设计问题 394
    19.5.1 命名惯例 394
    19.5.2 错误处理 394
    19.5.3 通用抽象数据类型 394
    19.5.4 新语言中的抽象数据类型 395
    问与答 395
    练习题 396
    编程题 397
    第 20章 底层程序设计 398
    20.1 位运算符 398
    20.1.1 移位运算符 398
    20.1.2 按位取反运算符、按位与运算符、按位异或运算符和按位或运算符 399
    20.1.3 用位运算符访问位 400
    20.1.4 用位运算符访问位域 401
    20.2 结构中的位域 403
    20.3 其他底层技术 405
    20.3.1 定义依赖机器的类型 405
    20.3.2 用联合来提供数据的多个视角 405
    20.3.3 将指针作为地址使用 407
    20.3.4 volatile类型限定符 409
    20.4 对象的对齐 410
    20.4.1 对齐运算符_Alignof 410
    20.4.2 对齐指定符_Alignas和头<stdalign.h> 410
    问与答 411
    练习题 411
    编程题 413
    第 21章 标准库 414
    21.1 标准库的使用 414
    21.1.1 对标准库中所用名字的限制 415
    21.1.2 使用宏隐藏的函数 415
    21.2 C89标准库概述 416
    21.3 C99标准库更新 417
    21.4 <stddef.h>:常用定义 418
    21.5 <stdbool.h>:布尔类型和值 419
    21.6 C11标准库更新 419
    21.7 <stdalign.h>:地址的对齐 420
    21.8 <stdnoreturn.h>:宏noreturn的定义 420
    问与答 420
    练习题 421
    编程题 422
    第 22章 输入/输出 423
    22.1 流 423
    22.1.1 文件指针 424
    22.1.2 标准流和重定向 424
    22.1.3 文本文件与二进制文件 425
    22.2 文件操作 426
    22.2.1 打开文件 426
    22.2.2 模式 427
    22.2.3 关闭文件 428
    22.2.4 为打开的流附加文件 428
    22.2.5 从命令行获取文件名 429
    22.2.6 临时文件 430
    22.2.7 文件缓冲 431
    22.2.8 其他文件操作 432
    22.3 格式化的输入/输出 433
    22.3.1 …printf函数 433
    22.3.2 …printf转换说明 433
    22.3.3 C99对…printf转换说明的修改 435
    22.3.4 …printf转换说明示例 436
    22.3.5 …scanf函数 438
    22.3.6 …scanf格式串 438
    22.3.7 …scanf转换说明 439
    22.3.8 C99对…scanf转换说明的改变 441
    22.3.9 scanf示例 441
    22.3.10 检测文件末尾和错误条件 442
    22.4 字符的输入/输出 444
    22.4.1 输出函数 444
    22.4.2 输入函数 444
    22.5 行的输入/输出 446
    22.5.1 输出函数 446
    22.5.2 输入函数 447
    22.6 块的输入/输出 447
    22.7 文件定位 448
    22.8 字符串的输入/输出 451
    22.8.1 输出函数 451
    22.8.2 输入函数 452
    问与答 452
    练习题 455
    编程题 458
    第 23章 库对数值和字符数据的支持 462
    23.1 <float.h>:浮点类型的特性 462
    23.2 <limits.h>:整数类型的大小 464
    23.3 <math.h>:数学计算(C89) 465
    23.3.1 错误 465
    23.3.2 三角函数 466
    23.3.3 双曲函数 466
    23.3.4 指数函数和对数函数 467
    23.3.5 幂函数 467
    23.3.6 就近舍入函数、*对值函数和取余函数 468
    23.4 <math.h>:数学计算 468
    23.4.1 IEEE浮点标准 469
    23.4.2 类型 470
    23.4.3 宏 470
    23.4.4 错误 470
    23.4.5 函数 471
    23.4.6 分类宏 471
    23.4.7 三角函数 472
    23.4.8 双曲函数 472
    23.4.9 指数函数和对数函数 473
    23.4.10 幂函数和*对值函数 474
    23.4.11 误差函数和伽马函数 474
    23.4.12 就近舍入函数 475
    23.4.13 取余函数 476
    23.4.14 操作函数 477
    23.4.15 *大值函数、*小值函数和正差函数 477
    23.4.16 浮点乘加 478
    23.4.17 比较宏 478
    23.5 <ctype.h>:字符处理 479
    23.5.1 字符分类函数 479
    23.5.2 字符大小写映射函数 481
    23.6 <string.h>:字符串处理 482
    23.6.1 复制函数 482
    23.6.2 拼接函数 483
    23.6.3 比较函数 484
    23.6.4 搜索函数 485
    23.6.5 其他函数 487
    问与答 488
    练习题 488
    编程题 490
    第 24章 错误处理 491
    24.1 <assert.h>:诊断 491
    24.2 <errno.h>:错误 492
    24.3 <signal.h>:信号处理 494
    24.3.1 信号宏 494
    24.3.2 signal函数 494
    24.3.3 预定义的信号处理函数 495
    24.3.4 raise函数 496
    24.4 <setjmp.h>:非局部跳转 497
    问与答 499
    练习题 500
    第 25章 国际化特性 502
    25.1 <locale.h>:本地化 502
    25.1.1 类项 503
    25.1.2 setlocale函数 503
    25.1.3 localeconv函数 504
    25.2 多字节字符和宽字符 507
    25.2.1 多字节字符 507
    25.2.2 宽字符 508
    25.2.3 Unicode和通用字符集 508
    25.2.4 Unicode编码 509
    25.2.5 多字节/宽字符转换函数 510
    25.2.6 多字节/宽字符串转换函数 511
    25.3 双联符和三联符 512
    25.3.1 三联符 512
    25.3.2 双联符 513
    25.3.3 <iso646.h>:拼写替换 513
    25.4 通用字符名 514
    25.5 <wchar.h>:扩展的多字节和宽字符实用工具 514
    25.5.1 流的倾向性 515
    25.5.2 格式化宽字符输入/输出函数 515
    25.5.3 宽字符输入/输出函数 517
    25.5.4 通用的宽字符串实用工具 518
    25.5.5 宽字符时间转换函数 521
    25.5.6 扩展的多字节/宽字符转换实用工具 521
    25.6 <wctype.h>:宽字符分类和映射实用工具 523
    25.6.1 宽字符分类函数 524
    25.6.2 可扩展的宽字符分类函数 525
    25.6.3 宽字符大小写映射函数 525
    25.6.4 可扩展的宽字符大小写映射函数 525
    25.7 <uchar.h>:改进的Unicode支持 526
    25.7.1 带u、U和u8前缀的字面串 526
    25.7.2 可重启动的多字节/宽字符转换函数 527
    问与答 528
    练习题 529
    编程题 530
    第 26章 其他库函数 531
    26.1 <stdarg.h>:可变参数 531
    26.1.1 调用带有可变参数列表的函数 533
    26.1.2 v…printf函数 533
    26.1.3 v…scanf函数 534
    26.2 <stdlib.h>:通用的实用工具 534
    26.2.1 数值转换函数 535
    26.2.2 伪随机序列生成函数 537
    26.2.3 与环境的通信 539
    26.2.4 搜索和排序实用工具 540
    26.2.5 整数算术运算函数 542
    26.2.6 地址对齐的内存分配 542
    26.3 <time.h>:日期和时间 542
    26.3.1 时间处理函数 543
    26.3.2 时间转换函数 545
    问与答 550
    练习题 552
    编程题 553
    第 27章 C99对数学计算的新增支持 554
    27.1 <stdint.h>:整数类型 554
    27.1.1 <stdint.h>类型 555
    27.1.2 对指定宽度整数类型的限制 555
    27.1.3 对其他整数类型的限制 556
    27.1.4 用于整型常量的宏 557
    27.2 <inttypes.h>:整数类型的格式转换 557
    27.2.1 用于格式指定符的宏 557
    27.2.2 用于*大宽度整数类型的函数 558
    27.3 复数 559
    27.3.1 复数的定义 559
    27.3.2 复数的算术运算 560
    27.3.3 C99中的复数类型 561
    27.3.4 复数的运算 561
    27.3.5 复数类型的转换规则 562
    27.4 <complex.h>:复数算术运算 562
    27.4.1 <complex.h>宏 562
    27.4.2 CX_LIMITED_RANGE编译提示 563
    27.4.3 <complex.h>函数 564
    27.4.4 三角函数 564
    27.4.5 双曲函数 565
    27.4.6 指数函数和对数函数 565
    27.4.7 幂函数和*对值函数 566
    27.4.8 操作函数 566
    27.5 <tgmath.h>:泛型数学 567
    27.5.1 泛型宏 568
    27.5.2 调用泛型宏 569
    27.6 <fenv.h>:浮点环境 570
    27.6.1 浮点状态标志和控制模式 570
    27.6.2 <fenv.h>宏 571
    27.6.3 FENV_ACCESS编译提示 571
    27.6.4 浮点异常函数 572
    27.6.5 舍入函数 573
    27.6.6 环境函数 573
    问与答 573
    练习题 574
    编程题 575
    第 28章 C1X新增的多线程和原子操作支持 576
    28.1 <threads.h>:多线程执行支持 577
    28.1.1 线程启动函数 577
    28.1.2 线程的创建和管理函数 578
    28.1.3 数据竞争 581
    28.1.4 互斥函数 583
    28.1.5 条件变量 585
    28.1.6 条件变量函数 587
    28.1.7 递归锁和非递归锁 591
    28.1.8 初始化函数 591
    28.1.9 _Thread_local 存储类和线程存储期 593
    28.1.10 线程专属存储 595
    28.1.11 线程专属存储函数 596
    28.2 _Atomic、<stdatomic.h>:原子类型和原子操作支持 599
    28.2.1 _Atomic:类型指定符/类型限定符 600
    28.2.2 标准库定义的原子类型 600
    28.2.3 初始化原子变量 601
    28.2.4 原子变量的初始化函数 601
    28.2.5 原子操作 602
    28.2.6 原子操作函数 604
    28.2.7 内存顺序 608
    28.2.8 围栏函数 613
    28.2.9 锁无关判断函数 615
    28.2.10 原子标志类型及其操作函数 616
    问与答 619
    练习题 619
    编程题 620
    附录A C语言运算符 621
    附录B C1X与C99的比较 622
    附录C C99与C89的比较 624
    附录D C89与经典C的比较 628
    附录E标准库函数 631
    附录F ASCII字符集 673
    延伸阅读 674
    索引(图灵社区下载)
    作者介绍

    【作者简介】 K. N. 金(K. N. King) 世界知名的计算机程序设计教育家。他拥有耶鲁大学计算机科学硕士学位,加州大学伯克利分校计算机科学博士学位,曾任教于佐治亚理工学院和佐治亚州立大学。除本书外,他还撰写了广受欢迎的著作Modula-2: A Complete Guide和Java Programming: From the Beginning。 【译者简介】 吕秀锋 曾任教于北京理工大学软件学院,讲授过多门计算机课程,包括“计算机基础(双语)”“C语言程序设计(双语)”“数据结构”“程序设计开发与实践”。 黄倩 河海大学计算机科学与技术系主任,兼任中国人工智能学会深度学习专委会委员、中国计算机学会多媒体技术专委会委员。博士毕业于中国科学院计算技术研究所,译有《编程珠玑(*2版)》等。 【审校简介】 李忠 *深C语言专家。著有《穿越计算机的迷雾》《X86汇编语言:从实模式到保护模式》《C语言非常道》和《标准C语言指南》等。
    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购