原书没有在章下面加序号,为了叙述方便,这里加上了。
第1章 介绍(共4页)
1 Introduction 1
第二章 基础知识(共6页)
2 Some Fundamentals 5
2.1 Programming 5
2.2 Higher-Level Languages 6
2.3 Operating Systems 6
2.4 Compiling Programs 7
2.5 Integrated Development Environments 10
2.6 Language Interpreters 10
先讲编程,再讲高级语言,操作系统,编译程序,集成开发环境(IDE),语言解释器。
本来C语言一般是编译的,但这里也介绍了解释器,说也有C解释器。
第三章 编译和运行程序(共10页,习题2页)
3 Compiling and Running Your First Program 11
3.1 Compiling Your Program 11
3.2 Running Your Program 12
3.3 Understanding Your First Program 13
3.4 Displaying the Values of Variables 15
3.5 Comments 17
Exercises 19
编译和运行程序各占一节。
下面解释程序。
怎样显示变量的值。
后面一节是程序注释。
第四章 变量、数据类型和算术表达式(共22页,习题3页)
4 Variables, Data Types, and Arithmetic Expressions 21
4.1 Working with Variables 21
4.2 Understanding Data Types and Constants 23
4.2.1 The Basic Integer Type int23
4.2.2 The Floating Number Typefloat24
4.2.3 The Extended Precision Typedouble25
4.2.4 The Single Character Type char25
4.2.5 The Boolean Data Type_Bool26
4.2.6 Type Specifiers:long,long long,short,unsigned, andsigned28
4.3 Working with Arithmetic Expressions 30
4.3.1 Integer Arithmetic and the Unary Minus
4.3.2 Operator 33
4.3.3 The Modulus Operator 35
4.3.4 Integer and Floating-Point Conversions 36
4.4 Combining Operations with Assignment:The Assignment Operators 38
4.5 Types_Complexand_Imaginary39
Exercises 40
第一节讲变量,没有把常量放在这一节。
第二节讲数据类型,从标题上看,把变量放在这里。但从下面小节的标题中,也没有看到哪个小节在讲常量。可能是在各小节中讲。因为常量有各种类型。
第三节讲算术表达式。下面的小节,第一小节讲整数算术运算和负号,第二、三小节都讲运算符,第四小节讲整型与浮点型的类型转换,就是同一个式子中有不同的算术类型,怎样进行类型转换。
第四节,复合运算符,是把赋值运算与算术运算结合起来的运算符(当然不光是算术运算符可以进行这种结合,不过这里只讲算术表达式)。
第五节,介绍两个看起来奇怪的类型。
第五章 程序循环(共22页,习题2页)
5 Program Looping 43
5.1 The for Statement 44
5.1.1 Relational Operators 46
5.1.2 Aligning Output 50
5.1.3 Program Input 51
5.1.4 Nested for Loops 53
5.2 for Loop Variants 54
5.3 The while Statement 56
5.4 The do Statement 60
5.5 The break Statement 62
5.6 The continue Statement 62
Exercises 63
第一节讲for语句,里面介绍关系运算符。循环需要结束条件,所以必须有这种运算符,前面还没有介绍,放在这里了。其第二、三小节看来是举例。第四小节讲嵌套循环。
第二节介绍循环变量。
第三节while语句。
第四节do语句。
这样就介绍了三种循环。
后面两节是循环里用的两个语句break和continue,它们在三种循环中都可以用,用于提前结束循环和不执行循环体中的一些语句。
第六章 程序分支(共30页,习题2页)
6 Making Decisions 65
6.1 The if Statement 65
6.1.1 The if-else Construct 69
6.1.2 Compound Relational Tests 72
6.1.3 Nested if Statements 75
6.1.4 The else if Construct 76
6.2 The switch Statement 84
6.3 Boolean Variables 87
6.4 The Conditional Operator 91
Exercises 93
第一节讲if语句,内容最多,19页。讲它的结构,嵌套。
第二节switch语句。
第三节逻辑变量。
第四节条件运算符。这个运算符可以替代简单的if语句。
第七章 数组(共24页,习题2页)
7 Working with Arrays 95
7.1 Defining an Array 96
7.1.1 Using Array Elements as Counters 100
7.1.2 Generating Fibonacci Numbers 103
7.1.3 Using an Array to Generate Prime Numbers 104
7.2 Initializing Arrays 106
7.3 Character Arrays 108
7.3.1 Base Conversion Using Arrays 109
7.3.2 The const Qualifier 111
7.4 Multidimensional Arrays 113
7.5 Variable-Length Arrays 115
Exercises 117
第一节定义数组,里面三个小节应该是三个例子。
第二节,初始化数组。
第三节,字符数组。C语言没有字符串类型,用数组来处理字符串。
第四节,多维数组。
第五节,变长数组(有的编译器不支持)。
第八章 函数(共46页,习题2页)
8 Working with Functions 119
8.1 Defining a Function 119
8.2 Arguments and Local Variables 122
8.2.1 Function Prototype Declaration 124
8.2.2 Automatic Local Variables 124
8.3 Returning Function Results 126
8.4 Functions Calling… 131
8.4.1 Declaring Return Types and Argument Types 134
8.4.2 Checking Function Arguments 135
8.5 Top-Down Programming 137
8.6 Functions and Arrays 137
8.6.1 Assignment Operators 142
8.6.2 Sorting Arrays 143
8.6.3 Multidimensional Arrays 146
8.7 Global Variables 152
8.8 Automatic and Static Variables 156
8.9 Recursive Functions 159
Exercises 162
第一节定义函数,
第二节参数和局部变量。
第三节,返回函数结果。
第四节,函数调用。第一小节是定义函数的返回类型和参数类型,第二小节是自动局部变量。
第五节,自上而下程序设计。
第六节,函数和数组,各小节是编程的例子。
第七节,全局变量
第八节,自动变量和静态变量
第九节,递归函数。
第九章 结构(共30页,习题4页)
9 Working with Structures 165
9.1 A Structure for Storing the Date 166
9.1.1 Using Structures in Expressions 168
9.2 Functions and Structures 171
9.2.1 A Structure for Storing the Time 177
9.3 Initializing Structures 180
9.3.1 Compound Literals 181
9.4 Arrays of Structures 182
9.5 Structures Containing Structures 185
9.6 Structures Containing Arrays 187
9.7 Structure Variants 190
Exercises 191
第一节,举例说明结构的概念,是日期的例子。
第二节,结构和函数
第三节,初始化结构
第四节,结构数组(元素为结构的数组)
第五节,包含结构的结构(就是结构的成员有结构)
第六节,包含数组的结构(就是结构的成员有数组)
第七节,结构变量
第十章 字符串(共40页,习题5页)
10 Character Strings 195
10.1 Arrays of Characters 196
10.2 Variable-Length Character Strings 198
10.2.1 Initializing and Displaying Character Strings 201
10.2.2 Testing Two Character Strings for Equality 204
10.2.3 Inputting Character Strings 206
10.2.4 Single-Character Input 208
10.2.5 The Null String 213
10.3 Escape Characters 216
10.4 More on Constant Strings 218
10.5 Character Strings, Structures, and Arrays 219
10.5.1 A Better Search Method 222
10.6 Character Operations 227
Exercises 230
第一节,字符数组(C语言没有字符串数据类型,用数组来处理字符串)
第二节,可变长字符串;
有五个小节,
第一小节是初始化和显示字符串
第二小节是判断两个字符串是否相等
第三小节输入字符串
第四小节输入单个字符
第五小节空字符串
第六节,字符操作
第十一章 指针(共44页,习题3页)
11 Pointers 235
11.1 Defining a Pointer Variable 235
11.2 Using Pointers in Expressions 239
11.3 Working with Pointers and Structures 240
11.3.1 Structures Containing Pointers 243
11.3.2 Linked Lists 244
11.4 The Keywordconstand Pointers 253
11.5 Pointers and Functions 254
11.6 Pointers and Arrays 259
11.6.1 A Slight Digression About Program Optimization 263
11.6.2 Is It an Array or Is It a Pointer? 264
11.6.3 Pointers to Character Strings 266
11.6.4 Constant Character Strings and Pointers 267
11.6.5 The Increment and Decrement Operators Revisited 268
11.7 Operations on Pointers 272
11.8 Pointers to Functions 273
11.9 Pointers and Memory Addresses 274
Exercises 276
指针是C语言最重要的概念。
第一节,定义指针变量。
第二节,在表达式中使用指针。
第三节,使用指针和结构。有两个小节,第一小节是包含指针的结构(结构成员有指针),第二小节是链表。
第四节,关键字const与指针。
第五节,指针与函数。
第六节,指针与数组,有五个小节。
第一小节,程序优化(有一点点离题,标题说了。提高程序效率是使用指针的最重要原因)。
第二小节,是数组还是指针?
第三小节,指向字符串数组的指针。
第四小节,常量字符串数组和指针。
第五小节,重温++和--操作符。
第七节,指针运算。
第八节,指向函数的指针。
第九节,指针与内存地址。
第十二章 位操作(共20页,习题2页)
12 Operations on Bits 279
12.1 Bit Operators 280
12.1.1 The Bitwise AND Operator 281
12.1.2 The Bitwise Inclusive-OR Operator 283
12.1.3 The Bitwise Exclusive-OR Operator 284
12.1.4 The Ones Complement Operator 285
12.1.5 The Left Shift Operator 287
12.1.6 The Right Shift Operator 287
12.1.7 A Shift Function 288
12.1.8 Rotating Bits 290
12.2 Bit Fields 292
Exercises 297
第一节,位操作,有八个小节
第一小节,逐位与操作符
第二小节,逐位同或操作符
第三小节,逐位异或操作符
第四小节,取反操作符
第五小节,左移操作
第六小节,右移操作
以下两个小节是例子
第七小节,一个移位函数
第八小节,循环移位
第二节 位域
第十三章 预处理器(共22页,习题1页)
13 The Preprocessor 299
13.1 The#defineStatement 299
13.1.1 Program Extendability 303
13.1.2 Program Portability 305
13.1.3 More Advanced Types of Definitions 306
13.1.4 The#Operator 312
13.1.5 The##Operator 313
13.2 The#includeStatement 313
13.2.1 System Include Files 316
13.3 Conditional Compilation 316
13.3.1 The#ifdef,#endif,#else, and#ifndefStatements 316
13.3.2 The#ifand#elifPreprocessor Statements 318
13.3.3.The#undefStatement 319
Exercises 320
第一节,#define语句
有5个小节
第一小节,程序的可扩展性
第二小节,程序的可移植性
第三小节,定义语句的更多高级类型
第四小节,#运算符
第五小节,##运算符
第二节 #include语句,它有一个小节,系统包含文件
第三节 条件编译(可以选择性地编译一些语句),它有三个小节,各介绍几个条件编译语句
第十四章 更多数据类型(共12页,习题3页)
14 More on Data Types 321
14.1 Enumerated Data Types 321
14.2 The typedef Statement 325
14.3 Data Type Conversions 327
14.3.1 Sign Extension 329
14.3.2 Argument Conversion 329
Exercises 330
第一节 枚举数据类型
第二节 typedef语句
第三节 数据转换,有两个小节,符号扩展和参数转换(调用函数时转换参数的类型)
第十五章 大程序编写(共14页)
15 Working with Larger Programs 333
15.1 Dividing Your Program into Multiple Files 333
15.1.1 Compiling Multiple Source Files from the Command Line 334
15.2 ommunication Between Modules 336
15.2.1 External Variables 336
15.2.2StaticVersusExternVariables and Functions 339
15.2.3 Using Header Files Effectively 341
15.3 Other Utilities for Working with Larger Programs 342
15.3.1 The make Utility 343
15.3.2 The cvs Utility 344
15.3.3 Unix Utilities:ar,grep,sed, and so on 345
第一节,把程序分为几个文件。有一个小节,从命令行编译多个源文件
第二节,模块之间的通信,有三个小节
第一小节,外部变量
第二小节,静态变量与外部变量和函数
第三小节,有效运用头文件
第三节,处理大程序的其它应用软件,介绍了make,cvs及Unix用的ar,grep,sed等。
第十六章 C中的输入输出操作(共26页,习题2页)
16 Input and Output Operations in C 347
16.1 Character I/O:getcharandputchar348
16.2 Formatted I/O:printfandscanf348
16.2.1 The printf Function 348
16.2.2 The scanf Function 355
16.3 Input and Output Operations with Files 359
16.3.1 Redirecting I/O to a File 359
16.3.2 End of File 361
16.4 Special Functions for Working with Files 363
16.4.1 The fopen Function 363
16.4.2 The getc and putc Functions 365
16.4.3 The fclose Function 365
16.4.4 The feof Function 367
16.4.5 The fprintf and fscanf Functions 368
16.4.6 The fgets and fputs Functions 368
16.4.7stdin,stdout, andstderr369
16.4.8 The exit Function 370
16.4.9 Renaming and Removing Files 371
Exercises 371
第一节,两个字符I/O函数
第二节,两个格式化I/O函数,两个小节分别介绍这两个函数
第三节,文件输入输出,两个小节,一个是重定向I/O到文件,一个是文件的结尾。
第四节,文件输入输出函数,介绍若干相关函数
第十七章 杂项和高级特征(共16页)
17 Miscellaneous and Advanced Features 373
17.1 Miscellaneous Language Statements 373
17.1.1 The goto Statement 373
17.1.2 The null Statement 374
17.2 Working with Unions 375
17.3 The Comma Operator 378
17.4 Type Qualifiers 378
17.4.1 The register Qualifier 378
17.4.2 The volatile Qualifier 379
17.4.3 The restrict Qualifier 379
17.5 Command-Line Arguments 380
17.6 Dynamic Memory Allocation 383
17.6.1 The calloc and malloc Functions 384
17.6.2 The sizeof Operator 385
17.6.3 The free Function 387
第一节,其它语句,这里介绍了两个语句,它们一般用不上。goto语句对程序效率有严重影响。
第二节,联合类型
第三节,逗号运算符
第四节,类型限定符,介绍了三个,register,volatile,restrict
第五节,命令行参数
第六节,动态内存分配,讲了相关的四个函数。
第十八章 程序调试(共22页)
18 Debugging Programs 389
18.1 Debugging with the Preprocessor 389
18.2 Debugging Programs withgdb395
18.2.1 Working with Variables 398
18.2.2 Source File Display 399
18.2.3 Controlling Program Execution 400
18.2.4 Getting a Stack Trace 405
18.2.5 Calling Functions and Setting Arrays and Structures 405
18.2.6 Getting Help with gdb Commands 406
18.2.7 Odds and Ends 408
第一节,用预处理器调试
第二节,用gdb调试,有七个小节
第一小节,跟踪变量
第二小节,显示源文件
第三小节,控制程序执行
第四小节,得到栈跟踪
第五小节,调用函数,设置数组和结构
第六小节,用gdb命令取得帮助
第七小节,其余功能简介
第十九章 面向对象编程(共14页)
19 Object-Oriented Programming 411
19.1 What Is an Object Anyway? 411
19.2 Instances and Methods 412
19.3 Writing a C Program to Work with Fractions 413
19.4 Defining an Objective-C Class to Work with Fractions 414
19.5 Defining a C++ Class to Work with Fractions 419
19.6 Defining a C# Class to Work with Fractions 422
第一节,对象
第二节,实例与方法
第三节,用C写一个分数程序
第四节,定义一个Objectiv-C类来写分数程序
第五节,定义一个C++类来写分数程序
第六节,定义一个C#类来写分数程序
附录A C语言总结(共42页)
A C Language Summary 425
1.0 Digraphs and Identifiers 425
1.1 Digraph Characters 425
1.2 Identifiers 425
2.0 Comments 426
3.0 Constants 427
3.1 Integer Constants 427
3.2 Floating-Point Constants 427
3.3 Character Constants 428
3.4 Character String Constants 429
3.5 Enumeration Constants 430
4.0 Data Types and Declarations 430
4.1 Declarations 430
4.2 Basic Data Types 430
4.3 Derived Data Types 432
4.4 Enumerated Data Types 438
4.5 The typedef Statement 438
4.6 Type Modifiers const,volatile, and restrict 439
5.0 Expressions 439
5.1 Summary of C Operators 440
5.2 Constant Expressions 442
5.3 Arithmetic Operators 443
5.4 Logical Operators 444
5.5 Relational Operators 444
5.6 Bitwise Operators 445
5.7 Increment and Decrement Operators 445
5.8 Assignment Operators 446
5.9 Conditional Operators 446
5.10 Type Cast Operator 446
5.11sizeofOperator 447
5.12 Comma Operator 447
5.13 Basic Operations with Arrays 447
5.14 Basic Operations with Structures 448
5.15 Basic Operations with Pointers 448
5.16 Compound Literals 450
5.17 Conversion of Basic Data Types 451
6.0 Storage Classes and Scope 452
6.1 Functions 452
6.2 Variables 452
7.0 Functions 454
7.1 Function Definition 454
7.2 Function Call 455
7.3 Function Pointers 456
8.0 Statements 456
8.1 Compound Statements 456
8.2 The break Statement 456
8.3 The continue Statement 457
8.4 The do Statement 457
8.5 The for Statement 457
8.6 The goto Statement 458
8.7 The if Statement 458
8.8 The null Statement 458
8.9 The return Statement 459
8.10 The switch Statement 459
8.11 The while Statement 460
9.0 The Preprocessor 460
9.1 Trigraph Sequences 460
9.2 Preprocessor Directives 461
9.3 Predefined Identifiers 466
附录B 标准C库(共26页)
B The Standard C Library 467
1 Standard Header Files 467
1.1 stddef.h 467
1.2 limits.h 468
1.3 stdbool.h 469
1.4 float.h 469
1.5 stdint.h 469
2 String Functions 470
3 Memory Functions 472
4 Character Functions 473
5 I/O Functions 473
6 In-Memory Format Conversion Functions 478
7 String-to-Number Conversion 479
8 Dynamic Memory Allocation Functions 481
9 Math Functions 482
9.1 Complex Arithmetic 488
10 General Utility Functions 490
附录C gcc编译程序(共4页)
C Compiling Programs withgcc493
General Command Format 493
Command-Line Options 494
附录D 常见编程错误(共4页)
D Common Programming Mistakes 497
附录E 资源(共4页)
E Resources 501
1 Answers to Exercises, Errata, etc. 501
2 The C Programming Language 501
2.1 Books 501
2.2 Web Sites 502
2.3 Newsgroups 502
3 C Compilers and Integrated Development Environments 502
3.1 gcc 502
3.2 MinGW 502
3.3 CygWin 502
3.4 Visual Studio 503
3.5 CodeWarrior 503
3.6 Kylix 503
4 Miscellaneous 503
4.1 Object-Oriented Programming 503
4.2 The C++ Language 503
4.3 The C# Language 503
4.4 The Objective-C Language 503
4.5 Development Tools 504
【书名、作者及其它信息】
Programming in C
A complete introduction to the C programming language
International Standard Book Number: 0-672-32666-3
Library of Congress Catalog Card Number: 2004093272
Printed in the United States of America
First Printing: July 2004
Author:Stephen G. Kochan
www.samspublishing.com