标题：C语言入门很简单
基本信息
作者：马磊  
丛书名：入门很简单丛书
出版社：清华大学出版社 
ISBN：9787302281023
出版日期：2012 年6月 
开本：16开 
页码：330 
版次：1-1
内容简介
《c语言入门很简单》是一本与众不同的c语言学习读物，是一本化繁为简，把“抽象”问题“具体”化，把复杂问题简单化的书。在本书中，避免出现云山雾罩、晦涩难懂的讲解，代之以轻松活泼、由浅入深的剖析，这必将使每一个阅读本书的读者少走弯路，快速上手，从而建立学习c程序设计的信心。
《c语言入门很简单》15章，分为5篇，从实用出发，由遇到的问题引出解决问题的方法来系统讲述c语言的各个特性及程序设计的基本方法。本书内容主要包括常量、变量、程序结构、数组、字符串、指针、结构体、共同体、枚举类型、函数、局部变量和全局变量、预处理命令和文件等一些非常重要的知识。通过阅读本书，读者可以在较短的时间内理解c程序设计的各个重要概念和知识点，为进一步学习打好基础。
《c语言入门很简单》配带1张dvd光盘，收录了本书重点内容的教学视频和涉及的源代码，光盘中还赠送了大量超值的c语言进阶视频。
《c语言入门很简单》最为适合没有基础的c语言入门新手阅读；对于有一定基础的读者，可通过本书进一步理解c语言的各个重要知识点和概念；对于大、中专院校的学生和培训班的学员，本书不失为一本好教材。 
目录
《c语言入门很简单》 
第1篇 一切从基础开始 
第1章 概述 
1.1 c语言简介 
1.1.1 c语言的位置 
1.1.2 c语言的优缺点 
1.1.3 c适合什么开发 
1.2 c语言的开发环境 
1.2.1 编辑器、编译器和链接器 
1.2.2 集成开发环境 
1.3 visual studio使用简介 
1.3.1 visual studio版本 
1.3.2 visual studio的安装 
1.3.3 新建项目 
1.3.4 编写代码 
1.3.5 编译链接 
1.3.6 运行可执行程序 
1.4 如何学好c语言 
1.5 小结 
1.6 习题 
.第2章 开始c语言之旅 
2.1 为什么要写代码 
2.1.1 为什么要写程序 
2.1.2 从本书开始学编程 
2.1.3 从一个现实的例子开始 
2.2 编程的核心——数据 
2.2.1 数据从哪里来 
2.2.2 数据的表示 
2.2.3 数据类型面面观——精度和范围 
2.2.4 c语言基本数据类型 
2.2.5 数据的变与不变——变量、常量 
2.3 使用变量和常量 
2.3.1 变量的使用 
2.3.2 命名的方式 
2.3.3 关键字 
2.3.4 常量的使用 
2.4 小结 
2.5 习题 
第2篇 简单程序的构建 
第3章 简单数学运算 
3.1 什么是赋值 
3.1.1 赋值的作用——把数据存起来 
3.1.2 赋值运算的形式 
3.1.3 赋值表达式 
3.1.4 机动灵活的赋值——scanf() 
3.1.5 看看我们的劳动成果——printf() 
3.1.6 赋值的重要性 
3.2 开始赋值——整型赋值 
3.2.1 整数在计算机中的表示——二进制 
3.2.2 更先进的表示方法——八进制和十六进制 
3.2.3 进制之间的转化——以二进制为桥梁 
3.2.4 给整型赋值 
3.3 浮点型赋值 
3.3.1 小数在计算机的表示 
3.3.2 给浮点型赋值 
3.4 字符型赋值 
3.4.1 字符在计算机中的表示——ascii 
3.4.2 给字符赋值 
3.5 类型转化 
3.5.1 什么是类型转换 
3.5.2 类型转换的利弊 
3.5.3 隐式类型转化和显示类型转换 
3.5.4 赋值中的类型转换 
3.6 基本数学运算 
3.6.1 数学运算和数学表达式 
3.6.2 商与余数 
3.6.3 位运算 
3.6.4 优先级的奥秘 
3.6.5 数学运算中的类型转换 
3.7 复合赋值运算 
3.7.1 复合赋值运算 
3.7.2 自增自减运算——特殊的复合赋值 
3.7.3 自增自减的使用 
3.8 小结 
3.9 习题 
第4章 程序结构 
4.1 语句和语句块 
4.1.1 简单语句 
4.1.2 语句块 
4.2 变量的作用域 
4.2.1 局部变量的声明定义位置规则 
4.2.2 局部变量的作用域规则 
4.2.3 嵌套语句块的同名变量作用域规则 
4.3 最常见的语句执行顺序——顺序结构 
4.4 判断结构 
4.4.1 判断的基础——逻辑真假 
4.4.2 基础的判断——关系运算 
4.4.3 复杂的判断——逻辑运算 
4.5 if判断结构 
4.5.1 基本if结构 
4.5.2 if…else…结构 
4.5.3 另类的条件判断——?运算符的使用 
4.5.4 if…else if…else结构 
4.5.5 嵌套的if结构 
4.6 switch判断结构 
4.6.1 switch基本结构 
4.6.2 果断结束——break的使用 
4.7 循环结构 
4.7.1 while循环结构 
4.7.2 for循环结构 
4.7.3 goto语句 
4.7.4 循环嵌套 
4.7.5 break和continue 
4.8 真正的程序——三种结构的揉和 
4.9 小结 
4.10 习题 
第3篇 复杂数据的表示 
第5章 数组 
5.1 数组简介 
5.1.1 数组的用途 
5.1.2 数组变量的定义 
5.2 数组变量初始化和赋值 
5.2.1 数组的初始化 
5.2.2 数组的下标 
5.2.3 给数组赋值 
5.2.4 数组元素的引用 
5.3 二维数组 
5.3.1 数组的维 
5.3.2 二维数组表示和含义 
5.3.3 二维数组的初始化 
5.3.4 二维数组的赋值 
5.3.5 二维数组的引用 
5.4 多维数组 
5.4 小结 
5.5 习题 
第6章 字符的数组——字符串 
6.1 字符数组 
6.1.1 字符数组的表示 
6.1.2 字符数组的初始化 
6.1.3 字符数组的赋值和引用 
6.2 字符串 
6.2.1 字符串的c语言表示 
6.2.2 使用字符串为字符数组初始化 
6.2.3 字符串的保存形式 
6.3 字符串的输入输出——scanf和printf字符串 
6.3.1 输入输出字符串的c语言表示 
6.3.2 scanf()函数对字符串的特殊处理 
6.4 小结 
6.5 习题 
第7章 指针 
7.1 地址的概念 
7.1.1 地址的含义 
7.1.2 为什么要用地址 
7.1.3 地址的表示与取址运算 
7.2 指针和指针变量 
7.2.1 指针的含义和用途 
7.2.2 指针类型 
7.2.3 指针变量的定义和使用 
7.2.4 void指针 
7.3 指针运算 
7.3.1 取指针元素 
7.3.2 指针的自加自减 
7.3.3 指针的类型转换 
7.4 数组和指针 
7.4.1 数组名也是指针 
7.4.2 数组名是指针常量 
7.4.3 使用数组名访问数组元素 
7.4.4 三种访问数组元素的方法 
7.4.5 数组指针和指针数组 
7.5 多重指针和多维数组 
7.5.1 多重指针 
7.5.2 取多重指针元素运算 
7.5.3 多维数组名和各维元素 
7.5.4 使用指针访问多维数组 
7.6 字符串和指针 
7.6.1 字符指针 
7.6.2 字符指针和字符串 
7.6.3 scanf()、printf()函数和字符指针 
7.7 小结 
7.8 习题 
第8章 结构体 
8.1 结构体的含义 
8.2 结构体类型的表示 
8.2.1 结构体类型的一般格式 
8.2.2 结构体的成员变量 
8.2.3 复杂的结构体 
8.3 结构体变量 
8.3.1 结构体变量的声明定义 
8.3.2 结构体变量初始化 
8.3.3 取结构体成员运算 
8.4 结构体数组 
8.5 结构体指针 
8.5.1 一重结构体指针 
8.5.2 使用结构体指针取结构体数据 
8.5.3 结构体指针例子 
8.6 回到问题 
8.7 小结 
8.8 习题 
第9章 共同体类型 
9.1 共同体的含义与表示 
9.1.1 共同体的用途 
9.1.2 共同体的表示 
9.1.3 复杂的共同体 
9.2 共同体变量 
9.2.1 共同体变量 
9.2.2 共同体成员变量的相互覆盖 
9.2.3 使用共同体变量 
9.3 共同体数组 
9.4 共同体的指针 
9.4.1 一重共同体指针类型 
9.4.2 共同体指针变量 
9.4.3 完整的例子 
9.5 小结 
9.6 习题 
第10章 枚举类型 
10.1 枚举类型的含义与表示 
10.1.1 枚举类型的含义 
10.1.2 枚举类型的表示 
10.2 枚举常量和枚举变量 
10.2.1 枚举常量 
10.2.2 枚举变量的定义 
10.2.3 枚举变量的使用 
10.3 枚举数组和指针 
10.3.1 枚举数组 
10.3.2 枚举指针 
10.3.3 用枚举指针来访问枚举数组 
10.4 typedef类型定义符 
10.5 小结 
10.6 习题 
第4篇 复杂功能的实现 
第11章 函数 
11.1 函数的意义 
11.2 函数的形式 
11.2.1 函数的一般形式 
11.2.2 函数的参数列表 
11.2.3 函数的返回值类型 
11.3 函数声明和定义 
11.3.1 函数的声明 
11.3.2 函数的定义形式 
11.3.3 函数的形参 
11.3.4 return返回值语句 
11.4 自己动手写一个函数——加法函数 
11.4.1 确定加法函数的样子 
11.4.2 实现加法函数体 
11.4.3 完整的加法函数定义 
11.5 函数调用 
11.5.1 函数的调用作用 
11.5.2 函数调用表达式 
11.5.3 函数的实参 
11.5.4 简单函数的调用 
11.6 复杂参数 
11.6.1 数组参数 
11.6.2 指针参数 
11.6.3 结构体、共同体和枚举参数 
11.7 小结 
11.8 习题 
第12章 特殊的函数——main()函数 
12.1 main()函数的作用 
12.2 main()函数的声明定义 
12.2.1 main()函数的声明形式 
12.2.2 main()函数的参数 
12.2.3 main()函数的返回值 
12.3 小结 
12.4 习题 
第13章 局部变量和全局变量 
13.1 变量的作用域和生命周期 
13.2 函数内的局部变量 
13.2.1 局部变量的作用域 
13.2.2 局部变量的生命周期 
13.2.3 局部变量的覆盖作用 
13.3 函数外的全局变量 
13.3.1 全局变量的作用域 
13.3.2 全局变量的生命周期 
13.3.3 局部变量对全局变量的覆盖作用 
13.4 变量修饰符 
13.4.1 使用修饰符改变变量的作用域和生命周期 
13.4.2 c语言中常用变量修饰符的作用 
13.5 小结 
13.6 习题 
第5篇 c语言的高级内容 
第14章 预处理命令、文件包含 
14.1 预处理命令的作用 
14.1.1 程序预处理 
14.1.2 预处理命令 
14.1.3 c语言的几类预处理命令 
14.2 c语言中的宏定义 
14.2.1 c语言的宏定义形式 
14.2.2 不带参宏定义 
14.2.3 带参数的宏定义 
14.3 预编译控制 
14.3.1 c语言预编译控制 
14.3.2 三种预编译控制组合形式 
14.3.3 一个简单的例子 
14.4 文件包含 
14.4.1 头文件和源文件的文件名 
14.4.2 头文件和源文件的内容 
14.5 include包含头文件 
14.5.1 自定义头文件和系统头文件 
14.5.2 文件包含的两种形式 
14.5.3 完整的circle例子 
14.5.4 c语言中的标准头文件 
14.6 小结 
14.7 习题 
第15章 文件操作 
15.1 文件 
15.1.1 重新认识文件 
15.1.2 计算机眼里的文件 
15.1.3 开发人员能对文件干些什么 
15.2 文件的打开关闭 
15.2.1 文件指针 
15.2.2 文件打开函数 
15.2.3 文件关闭函数 
15.3 文件读写 
15.3.1 读写一个字符 
15.3.2 读写一个字符串 
15.3.3 读写一个数据块 
15.4 文件的其他操作 
15.4.1 随机读写文件 
15.4.2 出错检验 
15.5 小结 
15.6 习题 
前言
C语言是一门历史悠久的程序设计语言，是一门博大精深的程序设计语言。它对计算机技术的发展起到了极其重要的促进作用，而且这种促进作用还一直在持续并将继续持续下去。它从产生之时就肩负了很多重要使命，开发操作系统、开发编译器、开发驱动程序……它可深可浅，浅到你可以用几周的时间掌握它的基本概念和功能，深到几乎可以解决计算机中的大部分问题。 
C语言几乎是每一个致力于程序设计人员的必学语言。但从学习之初，它给读者往往以神秘而艰难的感觉。下面给出一些C语言入门新手的典型感受。 
术语太难理解。C语言对于没有基础的人来说比较抽象，因为一些专业术语初学者不是很清楚，更别说写程序了。 
看不到界面。C语言的编写是没有界面的，导致初学者很难理解写出来的程序是什么样子，如何才能看出效果。 
写的程序好长。对于实际开发人员，C语言的使用概率比较小，要想实现某个效果，其程序很长，致使不容易完成。 
但实际上，C语言也并非想象的那么难。它的很多优点可以让它一直保持着魅力而在程序语言中永葆青春。总结起来，主要体现以下几个方面： 
C语言是基础语言，容易理解，对初学者没有太大的限制。 
它很灵活，一件事往往可以通过多种方式来实现。 
C语言虽然没有界面，但是C程序语句看起来很直观，容易理解。 
C语言没有那么多的库函数，没有“对象”与“类”之说，实现起来很方便。 
C语言执行效率高，更多地执行了计算机底层的程序设计工作。 
掌握了C语言，再学习其他程序设计语言是往往就比较容易了。 
本书即将展现的是一个简单的C语言，让C语言入门新手能在较短的时间内快速掌握C程序设计的基本思维和基础知识。本书和其他C语言图书的讲解方式有所不同。本书讲解时从实际出发，对C语言中的很多概念用生活中的例子进行类比。语言上力求幽默直白、轻松活泼，避免云山雾罩、晦涩难懂。讲解形式上图文并茂，由浅入深，抽丝剥茧。通过阅读本书，读者会少走很多弯路，会感觉到C语言其实没有想象的那么难。 
本书特色 
1．语言幽默直白，轻松活泼，通俗易懂 
本书避免使用那些艰涩难懂的术语云山雾罩地分析问题，代之以轻松活泼、幽默直白的语言讲解书中的每一个知识点。笔者力争让C语言的学习变得像看故事会一样通俗易懂。 
2. 实例丰富，实用性强，并注重原理的讲解 
本书结合大量生活中的实例，对C语言中的基本概念和知识做了深入浅出的讲解，并给出了大量生动形象的图示对程序的原理进行讲解，以加深读者的理解。 
3．图示丰富，容易理解 
本书针对C语言中一些较难理解的概念，提供了大量的图示进行介绍，让读者以更加形象、直观的方式来理解所讲解的知识，从而达到更好的学习效果。 
.　　4．举一反三 
授之以鱼不如授之以渔。本书讲解时注重由此及彼，启发读者的思维，让读者通过已经掌握的知识进一步延伸到更深、更宽、更广的领域，从而达到举一反三的作用。 
5．习题丰富 
本书每章后面都提供了有针对性的典型练习题，并给出了必要分析和实现的关键代码，以便于读者巩固和提高所学的知识。 
本书内容及体系结构 
第1篇 一切从基础开始（第1~2章） 
本篇简单讲述了计算机语言的有关基础知识，帮助大家对计算机语言有个感性的认识，进而讲述了C语言的相关背景，并重点讲述了C语言的开发工具和学习经验。 
第2篇 简单程序的构建（第3~4章） 
本篇主要讲述了C语言的相关基本概念，作为学习C语言最基本的储备。本篇知识掌握的好坏会直接影响着后面章节的学习，所谓万丈高楼平地起，说的就是这个意思。 
第3篇 复杂数据的表示（第5~10章） 
本篇讲述了C语言中一些比较复杂的知识点，也可以称之为高级知识。这些看着稍微复杂的知识也正是C语言的核心，能否使用C语言进行游刃有余的开发，就看对这本篇内容的掌握和理解程度了。 
第4篇 复杂功能的实现（第11~13章） 
本篇主要讲述了在使用C进行实际开发时需要使用的知识点，掌握了本篇内容，就可以自己开始进行实际的编程开发了。 
第5篇 C语言的高级内容（第14~15章） 
本篇是对前面所有的知识点的一个总结，主要讲述了如何使用C语言进行文件操作。 
本书读者对象 
没有基础的C语言入门新手； 
刚入职的初、中级程序员； 
大、中专院校的学生； 
相关培训学校的学员； 
C语言开发爱好者。 
编著者