返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 编程论坛—学习编程的艺术--不仅仅是MATLAB! > C语言


C语言 The C Programming Language.



回复
 
LinkBack 主题工具 显示模式
旧 2012-05-21, 12:55 PM   #1
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 c语言入门很简单

内 容 简 介
本书是一本与众不同的C语言学习读物,是一本化繁为简,把“抽象”问题“具体”化,把复杂问题简单化的书。在本书中,避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析,这必将使每一个阅读本书的读者少走弯路,快速上手,从而建立学习C程序设计的信心。
本书15章,分为5篇,从实用出发,由遇到的问题引出解决问题的方法来系统讲述C语言的各个特性及程序设计的基本方法。本书内容主要包括常量、变量、程序结构、数组、字符串、指针、结构体、共同体、枚举类型、函数、局部变量和全局变量、预处理命令和文件等一些非常重要的知识。通过阅读本书,读者可以在较短的时间内理解C程序设计的各个重要概念和知识点,为进一步学习打好基础。
本书配带1张DVD光盘,收录了本书重点内容的教学视频和涉及的源代码,光盘中还赠送了大量超值的C语言进阶视频。
本书最为适合没有基础的C语言入门新手阅读;对于有一定基础的读者,可通过本书进一步理解C语言的各个重要知识点和概念;对于大、中专院校的学生和培训班的学员,本书不失为一本好教材。

当当地址:http://product.dangdang.com/product....ct_id=22704315


目录
第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 习题

此帖于 2012-05-21 12:58 PM 被 lili123 编辑。 原因: t
lili123 当前离线   回复时引用此帖
旧 2012-05-21, 12:59 PM   #2
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单 书连载

第2章 开始C语言之旅
从这一章开始我们就算真正进入了C语言的世界了!不过,不要着急动手写代码,欲速则不达。先从最基本的C语言概念开始打好基本功,本章先从数据有关的C语言基本概念开始。
2.1 为什么要写代码
计算机语言是用来编写代码的,C语言也不例外!那么,再往深的想一想,为什么要写代码呢?难道仅仅只是因为好玩吗?不是的,如果仅仅是因为好玩,玩完之后就没意思了,也不会有那么多丰富多彩的软件了。
2.1.1 为什么要写程序
“工具都是给懒人发明的”。铁器时代之前,人们都是用手或者未经雕琢的木头来挖掘食物或者攻击猎物。人们发现这样很费力,然后就把石头进行打磨做出了石头工具。懒人可以用石头工具偷懒了。后来的青铜器时代、铁器时代也是如此。到了计算机时代,最伟大的发明就是计算机了。它可是很多懒人的福音啊!
呵呵…,开个玩笑。不一定用计算机的都是懒人了,不然我也是懒人一个了。不过计算机确实从各个方面给人们的生活带来很大的方便。
1.计算机很给力
买东西可以用淘宝,足不出户,就可以货比三家,挑出理想的宝贝。再也不用为一封家书,而苦苦等待好几个星期了,E-mail瞬间可以传递你的问候,或者收到家人的祝福。记录和保存文档再也不必费力的用草稿纸去手写,电子文档传输方便而且易于保管……。诸如此类计算机确实是个很给力的工具。
2.程序让计算机更给力
计算机是个又笨又努力的家伙,空有一身蛮力,但是不知道该干什么!需要程序告诉它,什么时候该做什么,什么时候不该做什么。
只有写出好的程序才可以发挥计算机最大的潜力,操作系统(如Windows)就是一个很实用的程序。但是,只有操作系统还不够,操作系统只是为各种优秀的软件提供一个公共的平台。你可以想想一下,要是Windows上没有装任何软件,要它有啥用?练习开机和关机吗?所以,类似于Word、QQ、浏览器、音乐播放器这些多姿多彩的应用程序配合操作系统使得计算机更加给力。
2.1.2 从本书开始学编程
有这样一群人,他们或许已经具备普通计算机使用的能力,或者连普通的计算机使用能力不具备,如不清楚QQ为何物。但是,他们立志做一个软件开发者,编写一个Office。如果你是这类人,那本书就非常适合你。
在书中,我们将会告诉读者,开发者是如何用语言告诉计算机自己的意思,来完成想要完成的目的。在这里,我们使用C语言来阐述我们的观点的,同时给出大量的C语言编程例子,来满足大家强烈的动手欲望。
我们所要达到的目标就是不仅仅是使初学者学会C语言的语法规则,还能够知道计算机语言是什么,以后遇到新的计算机语言学习时能够很快的搞定。当学习完本书,说出“C语言也就那样!”、“计算机程序设计语言也不过如此!”的豪言壮语,我们的目的就达到了。
lili123 当前离线   回复时引用此帖
旧 2012-05-21, 01:00 PM   #3
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.1.3 从一个现实的例子开始
再远大的理想,还是需要一步步来走。这里先从第一个例子开始。例如,我们工作一个月,老板要给发薪水了。在合同中规定好了,每个月3000块钱,按照国家的法律,每个人要交5%的个人所得税。那么,我们辛辛苦苦一个月到底能够拿到多少血汗钱呢?
1.普通人的做法
聪明人脑瓜子一转,这么简单。3000乘以5%是150。3000去掉150就是2850了。反应稍微慢点的人可能会拿出一支笔,一张纸,写出如下的计算式子:
3000-3000×5%=?
3000
× 0.05
-----------------
150.00

3000
— 150
-----------------
2850
所以,3000-3000×5%=2850。
2.程序员的做法
那程序员是如何做的呢?咣、咣、咣…敲几行代码,然后按了几个按钮,弹出了一个黑色的窗口。窗口上面写着2850。如果你只惊叹的喊出一句:“哇,好牛啊!”,如图2.1所示。然后不去思考,不去查资料,不去学习那个如何做到的,恭喜你,你没有做一个软件开发者或者说程序员的潜质。呵呵,开个玩笑,我是希望大家都要有求知欲。
那我们求知一回,程序员咣、咣、咣…,敲了什么代码?代码的意思是什么?按下的那几个按钮干了什么?弹出的黑色窗口是什么?窗口上为啥会显示2850…?大家一下变成“十万个为什么”了。而本书主要就是解决这些问题的!
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:01 PM   #4
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

3.如何解决“十万个为什么”
敲的代码是什么?代码的意思是什么?黑色的窗口上为啥会显示2850?……?这些都是编程语言的问题了,将在本书中占大量篇幅。程序员按的那几个按钮是什么,干了什么?弹出的黑色窗口是什么?……?这些都是开发环境的问题了…这也是本书的一个重点来通过实例来满足大家的动手欲望。
带着这些问题,开始我们的C语言之旅!相信“旅游”回来时,会很好的回答这些问题,并且觉得这些问题好傻瓜啊!呵呵…,但是记住,这些问题现在并不傻瓜,而且还很有意义!
2.2 编程的核心——数据
计算机有个最核心的工作,那就是运算,对什么进行运算呢?对数据进行运算!计算机程序设计语言是用来指导计算机进行运算的。因此,我们使用计算机语言进行编程的核心,就是操作数据了。
2.2.1 数据从哪里来
再来看看举的那个发工资的例子:工资3000、税5%,税后工资是多少钱?闭上眼睛,你还能记得起这句话中什么样的信息,或许最应该记住的就是3000和5%了。要计算税后工资,恐怕没有这两个数字是不行的吧?!这两个数字正是这句话的关键数据了。接下来看看什么是数据。
数据是对客观事物的符号表示,是用于表示客观事物未经加工的原始素材。它可以是图型符号、数字、字母等等。在C语言中,简单的说,数据就是表示一定有用信息的事物元素的符号或者信号。分解开来说吧,首先,数据是事物元素;其次,数据必须包含有用信息;最后,数据应该是个符号。
知道了要成为数据必须满足的三个条件之后,就一步一步的来看看在我们举的那个发工资的例子中,哪些是数据,哪些不是数据?为什么是,为什么不是?
1.数据是事物元素
我们看看发工资的例子中都有哪些事物元素,图2.2更直观的表示了出来。
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:04 PM   #5
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.数据是包含有用信息的
那到底什么是有用信息呢?有没有用要看对什么而言。例如,一块橡皮,对于写错字的人可谓是雪中送炭,但是对于不写字的人,那简直都没有石头有用。信息的有没有用是相对于要描述的事物而言。例如,要计算税后工资,那3000的基本工资和5%的税率就是有用的信息。发工资的老板是谁,就不是有用信息了。再例如,要完成公司财务报表的打印,那发工资的财务经理的名字以及发工资的时间就是有用信息了,财务报表要填写这些信息的。对于这两种场景的有用信息的比较,如表2.1所示

3.数据应该是个符号
那到底什么是符号?符号就是具有一定意义的数字、字母、汉字、图片、声音等。例如,数字符号1、字母符号'A'、汉字符号“我”都是符号。
以发工资为例,里面包含的数据如图2.3所示,有3000、5%和2850,分别是税前工资、税率和税后工资,都是数字符号。

此帖于 2012-05-21 01:07 PM 被 lili123 编辑。
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:08 PM   #6
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.2.2 数据的表示
在前面描述计算税后工资的例子中,要告诉计算机:工资是3000元、税率5%,计算它的税后工资。该怎么告诉计算机呢?而且,要确定告诉计算机工资是3000而不是2999.99,税率是5%而不是5‰,这就涉及到数据在C语言中的表示了。
为了数据能在C语言中容易表示,数据被分为了好多的类!每一类的数据被叫做属于同一种数据类型。对于每一种运算,不同的数据类型计算出来的结果都是不一样的。这就好比同样的化学纤维做出来的衣服类型不同使用就不同了。男士的西服让女士穿着就显着别扭,女士的裙子要是被男士穿着就要闹出尴尬了,更甚者总不能把裤子穿在头上吧!所以,得分清楚数据的数据类型然后才能正确的使用它们。
2.2.3 数据类型面面观——精度和范围
在了解C语言数据类型之前,先了解两个概念——精度和范围,这是讨论数据类型的重点。
1.精度
精度是用来说明可以表示数据的最小的粒度,也就是可以表示的精细程度。讲个笑话,一个人过收费站,过磅整车重4.29吨。然后司机上了一趟厕所,又过收费站,过磅,整车重4.20吨。一趟厕所下来,减少了0.09吨,共90公斤。电子称只能称到0.1吨,所以司机上不上厕所对于称重没有影响,因为电子称的精度不够。这个故事告诉我们不必憋尿来增加车重,没必要,呵呵…
2.范围
范围是用来说明可以表示的数据的最大尺度,也就是可以表示的广度。不同数据表示的要使用不同的广度,不然就会出现用游标卡尺去量万里长城的笑话了。游标卡尺虽然精度很细,但是范围远远不够,估计把长城量完也至少也得好几年吧。还不如用卫星直接去测呢,瞬间搞定!
2.2.4 C语言基本数据类型
精度和范围(也就是广度)之间得有个权衡,很多时候有精度没有广度的,或者是有广度没精度的。就像游标卡尺和卫星测量一样,需要我们选择合适。在C语言中,有三种基本的数据类型供我们选择,它们有着不同的精度和广度,可以根据自己的需要选择合适的。这三种数据类型分别是整形、浮点型、字符型,它们可谓是C语言数据的三大变形金刚。
1.整型
整型在C语言中是用来表示整数的,主要是用符号int表示。为了满足不同的需要,整型按照可表示的范围分为以下几类:整型(或者叫一般整型)、短整型、长整型。短整型用来表示较小范围的数,长整型用来表示较大范围的数。这就好像你要装水得有瓢、或有水桶、或又有缸一样,都是用来装水,但是分别用于不同的用途。对于不同的整型,在C语言中使用不同的符号表示:
 整型:使用int关键字表示;
 短整型:使用short int关键字表示,简写为short;
 长整型:使用long int关键字表示,简写为long,可以省略int不写。
整数分为正整数、负整数和零。有的时候需要表示整数的既可以是正的也可以是负的,有的时候只需要表示正的整数。就像我们表示人民币的时候用的都是正数或者零元,表示温度的时候既可以是负一度,也可以是正一度。
为了满足上面的需求,C语言中的整型又可以分为有符号的和无符号的。有符号整型可以表示正整数、零和负整数,有符号使用signed符号表示。无符号整型只可以表示正整数和零,无符号使用unsigned符号表示。
因此,三种整型分别和有符号、无符号组合,因此整型总共有六种:
 有符号整型:简称整型,用signed int关键字表示,简写为int;
 有符号短整型:简称短整型,用signed short int关键字表示,简写为short int或者short;
 有符号长整型:简称长整型,用signed long int关键字表示,简写为long int或者long;
 无符号整型:用unsigned int关键字表示;
 无符号短整型:用unsigned short int关键字表示,简写为unsigend short;
 无符号长整型:用unsigned long int关键字表示,简写为unsigned long。
我们列表来表示每一种整型的范围和适合表示的数,如表2.2所示。
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:09 PM   #7
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.2.2 数据的表示
在前面描述计算税后工资的例子中,要告诉计算机:工资是3000元、税率5%,计算它的税后工资。该怎么告诉计算机呢?而且,要确定告诉计算机工资是3000而不是2999.99,税率是5%而不是5‰,这就涉及到数据在C语言中的表示了。
为了数据能在C语言中容易表示,数据被分为了好多的类!每一类的数据被叫做属于同一种数据类型。对于每一种运算,不同的数据类型计算出来的结果都是不一样的。这就好比同样的化学纤维做出来的衣服类型不同使用就不同了。男士的西服让女士穿着就显着别扭,女士的裙子要是被男士穿着就要闹出尴尬了,更甚者总不能把裤子穿在头上吧!所以,得分清楚数据的数据类型然后才能正确的使用它们。
2.2.3 数据类型面面观——精度和范围
在了解C语言数据类型之前,先了解两个概念——精度和范围,这是讨论数据类型的重点。
1.精度
精度是用来说明可以表示数据的最小的粒度,也就是可以表示的精细程度。讲个笑话,一个人过收费站,过磅整车重4.29吨。然后司机上了一趟厕所,又过收费站,过磅,整车重4.20吨。一趟厕所下来,减少了0.09吨,共90公斤。电子称只能称到0.1吨,所以司机上不上厕所对于称重没有影响,因为电子称的精度不够。这个故事告诉我们不必憋尿来增加车重,没必要,呵呵…
2.范围
范围是用来说明可以表示的数据的最大尺度,也就是可以表示的广度。不同数据表示的要使用不同的广度,不然就会出现用游标卡尺去量万里长城的笑话了。游标卡尺虽然精度很细,但是范围远远不够,估计把长城量完也至少也得好几年吧。还不如用卫星直接去测呢,瞬间搞定!
2.2.4 C语言基本数据类型
精度和范围(也就是广度)之间得有个权衡,很多时候有精度没有广度的,或者是有广度没精度的。就像游标卡尺和卫星测量一样,需要我们选择合适。在C语言中,有三种基本的数据类型供我们选择,它们有着不同的精度和广度,可以根据自己的需要选择合适的。这三种数据类型分别是整形、浮点型、字符型,它们可谓是C语言数据的三大变形金刚。
1.整型
整型在C语言中是用来表示整数的,主要是用符号int表示。为了满足不同的需要,整型按照可表示的范围分为以下几类:整型(或者叫一般整型)、短整型、长整型。短整型用来表示较小范围的数,长整型用来表示较大范围的数。这就好像你要装水得有瓢、或有水桶、或又有缸一样,都是用来装水,但是分别用于不同的用途。对于不同的整型,在C语言中使用不同的符号表示:
 整型:使用int关键字表示;
 短整型:使用short int关键字表示,简写为short;
 长整型:使用long int关键字表示,简写为long,可以省略int不写。
整数分为正整数、负整数和零。有的时候需要表示整数的既可以是正的也可以是负的,有的时候只需要表示正的整数。就像我们表示人民币的时候用的都是正数或者零元,表示温度的时候既可以是负一度,也可以是正一度。
为了满足上面的需求,C语言中的整型又可以分为有符号的和无符号的。有符号整型可以表示正整数、零和负整数,有符号使用signed符号表示。无符号整型只可以表示正整数和零,无符号使用unsigned符号表示。
因此,三种整型分别和有符号、无符号组合,因此整型总共有六种:
 有符号整型:简称整型,用signed int关键字表示,简写为int;
 有符号短整型:简称短整型,用signed short int关键字表示,简写为short int或者short;
 有符号长整型:简称长整型,用signed long int关键字表示,简写为long int或者long;
 无符号整型:用unsigned int关键字表示;
 无符号短整型:用unsigned short int关键字表示,简写为unsigend short;
 无符号长整型:用unsigned long int关键字表示,简写为unsigned long。
我们列表来表示每一种整型的范围和适合表示的数,如表2.2所示。

从表2.2中可以看出长整型和整型是一样的,其实对于不同的系统,这个范围是不一样的,长整型会比整型的范围大,但是现在一般系统都是把它们定义为一样。
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:10 PM   #8
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.浮点型
浮点型在C语言中主要用来表示小数,分为单精度浮点类型和双精度浮点类型。它们的区别仅仅是表示的精度不一样,双精度的表示精度会更细点,并且表示的范围也会更大。单精度浮点类型使用float关键字表示;双精度浮点类型使用double float表示,简写为double。浮点型没有有符号和无符号的区别,都是有符号的。下面做表加以比较,如表2.3所示。

3.字符型
字符型在C语言来表示各种字符,如英文字母、标点、数字之类。它只是一种符号表示,就像我们用‘A’,一撇、一拉、一横来表示大写英文字母A。像我们用‘1’,一个竖线来表示数字;用‘,’,类似于豆芽的东西表示语文中的逗号分隔符。
所以,从上面几种数据类型的表示,可以使用整数来表示3000元的工资,用浮点型来表示税率5%。
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:10 PM   #9
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.2.5 数据的变与不变——变量、常量
当了解数据后,就会发现身边到处都是数据。万事万物都可以用数据表示。就像黑客帝国酷哥尼奥看待自己所在的虚拟世界一样:神马都是数据。我们老祖宗更超前:“万变不离其宗”、“道生一、一生二、二生三、三生万物”。万物已经变成“一、二、三”了。我们没有那么高深,只能看到数据是变与不变的。
例如,当需要计算圆的面积时,事先,圆的半径是不知道的。半径是变化的,计算出来的圆的面积也是随着圆的半径而不断变化的。然而,计算过程中有一个量是一直不变的,那就是圆周率3.1415926(为了便于大家阅读,本人这里省略后面圆周率的后面无数位。有兴趣的读者,可以自己手工计算)。在C语言中把这些计算中变化的量叫做“变量”,把这些不变的量叫做“常量”。
1.如何区分变量和常量
为了区分常量和变量,再来看看我们那个发工资的例子:工资是3000、税率是5%,问税后可以拿到多少薪水?在计算过程中,工资是不变的(3000),是一个常量。税率5%也是不变的,也是一个常量。计算结果虽然我们还不知道,但是可以肯定它也是不变的,也是一个常量。
有人会问,在这个例子中就看不到变量了吗?我们把这个例子改改,或者说把计算的问题改改,就会出现变量了。
假如,你是公司的会计,老板要发工资了,要你计算出该给每个人发多少薪水。这时,你得考虑了,每个人的税前工资都是不一样的,按照国家规定,处于每个工资段的税率也是不一样的。这样,要计算每个员工的税后工资时,税前工资、税率都是变化的了,如图2.4所示
在图2.4中,我们看到有三个员工,他们的工资分别是3000、2000和3000,税率为5%。我们可以看出税前工资是变化的,要给每个人发工资,就得用一个变量来表示税前工资了。税率不变,我们就用常量表示吧!
这个时候,就出现变量了。同样计算,对于不同的工资和不同的税率,结果也是不同的。所以在C语言编程是,就得用变量来处理。
2.回到C语言
从上面的描述,可以看出这样一条准则:在要进行C语言编程先得确定出,哪些数据是要作为变量处理,哪些数据是要作为常量处理的。判断的依据就是在用C语言处理时,这个数据是一直变化的还是一直不变的,这就是我们区分变量和常量的准则
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
旧 2012-05-21, 01:11 PM   #10
普通会员
 
注册日期: 2012-05-21
帖子: 37
感谢他人: 0
有 11 帖获得 11 感谢
声望力: 6
lili123 正向着好的方向发展
默认 回复: c语言入门很简单

2.3 使用变量和常量
在数据的世界中,数据被分为一成不变的常量和一直变化的变量。这样划分以后,使计算机操作数据也变得方便多了,只要计算机能操作变量和常量,那么它就可以操作任何数据了,这就叫做真正的提纲挈领。这一章就来看看在C语言中如何使用变量和常量!
2.3.1 变量的使用
在C语言中,要使用变量就得先对变量声明和定义。变量的声明是说明变量的类型的,而变量定义是创建要求的变量。通俗地说,声明变量就是告诉计算机“我要的是浮点型的变量,记住,一定是浮点型的!”;变量定义就是告诉计算机“我要的是浮点型的变量,现在我就要了!”,如图2.5所示。两者差别在于,声明变量的时候,只是要求,计算机并没有创建,而只有定义的时候才会创建变量。
在C语言中,变量的声明和定义是一体的。其语法形式如下:
变量类型 变量名;
其中,变量类型是要求计算机给的变量的类型;变量名是我们给问计算机要的变量取一个名字,我们以后就可以用这个名,来“召唤”计算机给我们的变量了。
好了,有人要问了,就像你说的,我要计算圆的面积,半径事先不知道,按照变量来,我也事先确定了半径是小数。我需要一个浮点型的变量来表示半径,在C语言中,浮点型的变量该怎么表示呢?
要计算圆的面积定义的半径可以表示为:
float radius;
其中,float是变量的类型名称,radius是变量的名字。像上面的表示做了两件事情,半径变量的声明和定义。即告诉计算机,“给我一个浮点型的变量,记住一定要浮点型的”,又告诉计算机,“给我一个浮点型的变量,现在就给我”!
lili123 当前离线   回复时引用此帖
以下用户感谢 lili123 发表了这个帖子:
哗哗哗哗 (2017-09-06)
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 04:24 PM


Powered by vBulletin
版权所有 ©2000 - 2017,Jelsoft Enterprises Ltd.
陕ICP备07001583号

SEO by vBSEO ©2009, Crawlability, Inc.