搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Linux C编程一站式学习
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121097713
  • 作      者:
    宋劲杉编著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2009
收藏
作者简介
  宋劲杉,亚嵌教育资深讲师,清华大学自动化系硕士,6年嵌入式系统开发经验,3年嵌入式行业教学经验,精通Linux内核、POSIX、TCP/IP,擅长ARM平台的Linux系统移植和应用开发,目前关注的方向有分布式系统、动态语言。爱好:开源软件、电子音乐、HomeParty。
展开
内容介绍
  《Linux C编程一站式学习》有两条线索,一条线索是以Linux平台为载体全面深入地介绍c语言的语法和程序的工作原理,另一条线索是介绍程序设计的基本思想和开发调试方法。《Linux C编程一站式学习》分为两部分:第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识c语言;第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识C语言。
  《Linux C编程一站式学习》适合做零基础的初学者学习c语言的第一本教材,帮助读者打下牢固的基础。有一定的编程经验但知识体系不够完整的读者也可以对照《Linux C编程一站式学习》查缺补漏,从而更深入地理解程序的工作原理。《Linux C编程一站式学习》最初是为北京亚嵌教育研究中心的嵌入式Linux系统工程师就业班课程量身定做的教材之一,也适合作为高等院校程序设计基础课程的教材。《Linux C编程一站式学习》对于C语言的语法介绍得非常全面,对C99标准做了很多解读,因此也可以作为一本精简的c语言语法参考书。
展开
精彩书摘
  上篇  C语言入门
  第1章 程序的基本概念
  1.1  程序和编程语言
  程序(Program)告诉计算机应该如何完成一个计算任务,这里的计算可以是数学运算(如解方程),也可以是符号运算(如查找和替换文档中的某个单词)。从根本上说,计算机是由数字电路组成的运算机器,只能对数字进行运算,程序之所以能进行符号运算,是因为符号在计算机内部也是用数字表示的。此外,程序还可以处理声音和图像。声音和图像在计算机内部必然也是用数字表示的,这些数字经过专门的硬件设备转换成人可以听到的声音和看到的图像。
  程序由一系列指令(Instruction)组成,指令是指示计算机进行某种运算的命令,
  通常包括以下几类:
  输入(Input)
  从键盘、文件或者其他设备获取数据。
  输出(Output)
  把数据显示到屏幕,或者存入一个文件,或者发送到其他设备。
  基本运算
  执行最基本的数学运算(加减乘除)和数据存取。
  测试和分支
  测试某个条件,然后根据不同的测试结果执行不同的后续指令。
  循环
  重复执行一系列操作。
  对于程序来说,有上面这几类指令就足够了。你曾用过的任何一个程序,不管它有多么复杂,都是由这几类指令组成的。程序是那么复杂,而编写程序可以用的指令却只有这么简单的几种,这中间巨大的落差就要由程序员去填补了,所以编写程序理应是一件相当复杂的工作。编写程序可以说就是这样一个过程:把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上指令来完成。
展开
目录
上篇  C语言入门
第1章  程序的基本概念/2
1.1  程序和编程语言/2
1.2  自然语言和形式语言/6
1.3  程序的调试/7
1.4  第一个程序/9

第2章  常量、变量和表达式/12
2.1  继续Hello World/12
2.2  常量/15
2.3  变量/16
2.4  赋值/18
2.5  表达式/19
2.6  字符类型与字符编码/23

第3章  简单函数/24
3.1  数学函数/24
3.2  自定义函数/26
3.3  形参和实参/31
3.4  全局变量、局部变量和作用域/35

第4章  分支语句/41
4.1  if语句/41
4.2  if/else语句/43
4.3  布尔代数/45
4.4  switch语句/49

第5章  深入理解函数/51
5.1  return语句/51
5.2  增量式开发/54
5.3  递归/58

第6章  循环语句/64
6.1  while语句/64
6.2  do/while语句/66
6.3  for语句/67
6.4  break和continue语句/69
6.5  嵌套循环/70
6.6  goto语句和标号/71

第7章  结构体/74
7.1  复合类型与结构体/74
7.2  数据抽象/78
7.3  数据类型标志/82
7.4  嵌套结构体/84

第8章  数组/85
8.1  数组的基本概念/85
8.2  数组应用实例:统计随机数/88
8.3  数组应用实例:直方图/91
8.4  字符串/94
8.5  多维数组/95

第9章  编码风格/100
9.1  缩进和空白/100
9.2  注释/104
9.3  标识符命名/107
9.4  函数/108
9.5  indent工具/108

第10章  gdb/110
10.1  单步执行和跟踪函数调用/110
10.2  断点/117
10.3  观察点/121
10.4  段错误/125

第11章  排序与查找/128
11.1  算法的概念/128
11.2  插入排序/129
11.3  算法的时间复杂度分析/131
11.4  归并排序/133
11.5  线性查找/138
11.6  折半查找/139

第12章  栈与队列/144
12.1  数据结构的概念/144
12.2  堆栈/144
12.3  深度优先搜索/146
12.4  队列与广度优先搜索/152
12.5  环形队列/156
本阶段总结/159

下篇  C语言本质
第13章  计算机中数的表示/162
13.1  为什么计算机用二进制计数/162
13.2  不同进制之间的换算/164
13.3  整数的加减运算/165
13.3.1  Sign and Magnitude表示法/165
13.3.2  1’s Complement表示法/166
13.3.3  2’s Complement表示法/167
13.3.4  有符号数和无符号数/168
13.4  浮点数/169

第14章  数据类型详解/172
14.1  整型/172
14.2  浮点型/176
14.3  类型转换/177
14.3.1  Integer Promotion/177
14.3.2  Usual Arithmetic Conversion/178
14.3.3  由赋值产生的类型转换/179
14.3.4  强制类型转换/179
14.3.5  编译器如何处理类型转换/179

第15章  运算符详解/182
15.1  位运算/182
15.1.1  按位与、或、异或、取反运算/182
15.1.2  移位运算/183
15.1.3  掩码/184
15.1.4  异或运算的一些特性/185
15.2  其他运算符/186
15.2.1  复合赋值运算符/186
15.2.2  条件运算符/186
15.2.3  逗号运算符/187
15.2.4  sizeof运算符与typedef类型声明/187
15.3  Side Effect与Sequence Point/189
15.4  运算符总结/191

第16章  计算机体系结构基础/193
16.1  内存与地址/193
16.2  CPU/193
16.3  设备/196
16.4  MMU/198
16.5  Memory Hierarchy/201

第17章  x86汇编程序基础/205
17.1  最简单的汇编程序/205
17.2  x86的寄存器/208
17.3  第二个汇编程序/209
17.4  寻址方式/211
17.5  ELF文件/212
17.5.1  目标文件/213
17.5.2  可执行文件/218

第18章  汇编与C之间的关系/224
18.1  函数调用/224
18.2  main函数、启动例程和退出状态/230
18.3  变量的存储布局/237
18.4  结构体和联合体/244
18.5  C内联汇编/248
18.6  volatile限定符/250

第19章  链接详解/255
19.1  多目标文件的链接/255
19.2  定义和声明/260
19.2.1  extern和static关键字/260
19.2.2  头文件/264
19.2.3  定义和声明的详细规则/268
19.3  静态库/271
19.4  共享库/274
19.4.1  编译、链接、运行/274
19.4.2  函数的动态链接过程/281
19.4.3  共享库的命名惯例/282
19.5  虚拟内存管理/284

第20章  预处理/290
20.1  预处理的步骤/290
20.2  宏定义/291
20.2.1  函数式宏定义/291
20.2.2  内联函数/294
20.2.3  #、##运算符和可变参数/296
20.2.4  #undef预处理指示/298
20.2.5  宏展开的步骤/299
20.3  条件预处理指示/300
20.4  其他预处理特性/303

第21章  Makefile基础/306
21.1  基本规则/306
21.2  隐含规则和模式规则/313
21.3  变量/317
21.4  自动处理头文件的依赖关系/321
21.5  常用的make命令行选项/324

第22章  指针/327
22.1  指针的基本概念/327
22.2  指针类型的参数和返回值/331
22.3  指针与数组/332
22.4  指针与const限定符/335
22.5  指针与结构体/337
22.6  指向指针的指针与指针数组/337
22.7  指向数组的指针与多维数组/340
22.8  函数类型和函数指针类型/341
22.9  不完全类型和复杂声明/344

第23章  函数接口/349
23.1  本章的预备知识/349
23.1.1  strcpy与strncpy/349
23.1.2  malloc与free/354
23.2  传入参数与传出参数/358
23.3  两层指针的参数/360
23.4  返回值是指针的情况/362
23.5  回调函数/365
23.6  可变参数/368

第24章  C标准库/372
24.1  字符串操作函数/373
24.1.1  给字符串赋初值/373
24.1.2  取字符串的长度/374
24.1.3  拷贝字符串/375
24.1.4  连接字符串/377
24.1.5  比较字符串/378
24.1.6  搜索字符串/379
24.1.7  分割字符串/380
24.2  标准I/O库函数/383
24.2.1  文件的基本概念/383
24.2.2  fopen/fclose/384
24.2.3  stdin/stdout/stderr/387
24.2.4  errno与perror/strerror函数/388
24.2.5  以字节为单位的I/O函数/391
24.2.6  操作读写位置的函数/393
24.2.7  以字符串为单位的I/O函数/395
24.2.8  以记录为单位的I/O函数/397
24.2.9  格式化I/O函数/399
24.2.10  C标准库的I/O缓冲区/406
24.2.11  本节综合练习/410
24.3  数值字符串转换函数/412
24.4  分配内存的函数/414

第25章  链表、二叉树和哈希表/415
25.1  链表/415
25.1.1  单链表/415
25.1.2  双向链表/421
25.1.3  静态链表/425
25.1.4  本节综合练习/426
25.2  二叉树/426
25.2.1  二叉树的基本概念/426
25.2.2  排序二叉树/432
25.3  哈希表/437
本阶段总结/439
附录A  字符编码/442
索引/449
参考书目/474
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证