Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.数据是包含有用信息的
那到底什么是有用信息呢?有没有用要看对什么而言。例如,一块橡皮,对于写错字的人可谓是雪中送炭,但是对于不写字的人,那简直都没有石头有用。信息的有没有用是相对于要描述的事物而言。例如,要计算税后工资,那3000的基本工资和5%的税率就是有用的信息。发工资的老板是谁,就不是有用信息了。再例如,要完成公司财务报表的打印,那发工资的财务经理的名字以及发工资的时间就是有用信息了,财务报表要填写这些信息的。对于这两种场景的有用信息的比较,如表2.1所示 ![]() 3.数据应该是个符号 那到底什么是符号?符号就是具有一定意义的数字、字母、汉字、图片、声音等。例如,数字符号1、字母符号'A'、汉字符号“我”都是符号。 以发工资为例,里面包含的数据如图2.3所示,有3000、5%和2850,分别是税前工资、税率和税后工资,都是数字符号。 此帖于 2012-05-21 13:07 被 lili123 编辑。 |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
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所示。 ![]() |
![]() |
![]() |
![]() |
#3 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
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中可以看出长整型和整型是一样的,其实对于不同的系统,这个范围是不一样的,长整型会比整型的范围大,但是现在一般系统都是把它们定义为一样。 |
![]() |
![]() |
![]() |
#4 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.浮点型
浮点型在C语言中主要用来表示小数,分为单精度浮点类型和双精度浮点类型。它们的区别仅仅是表示的精度不一样,双精度的表示精度会更细点,并且表示的范围也会更大。单精度浮点类型使用float关键字表示;双精度浮点类型使用double float表示,简写为double。浮点型没有有符号和无符号的区别,都是有符号的。下面做表加以比较,如表2.3所示。 ![]() 3.字符型 字符型在C语言来表示各种字符,如英文字母、标点、数字之类。它只是一种符号表示,就像我们用‘A’,一撇、一拉、一横来表示大写英文字母A。像我们用‘1’,一个竖线来表示数字;用‘,’,类似于豆芽的东西表示语文中的逗号分隔符。 所以,从上面几种数据类型的表示,可以使用整数来表示3000元的工资,用浮点型来表示税率5%。 |
![]() |
![]() |
![]() |
#5 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.2.5 数据的变与不变——变量、常量
当了解数据后,就会发现身边到处都是数据。万事万物都可以用数据表示。就像黑客帝国酷哥尼奥看待自己所在的虚拟世界一样:神马都是数据。我们老祖宗更超前:“万变不离其宗”、“道生一、一生二、二生三、三生万物”。万物已经变成“一、二、三”了。我们没有那么高深,只能看到数据是变与不变的。 例如,当需要计算圆的面积时,事先,圆的半径是不知道的。半径是变化的,计算出来的圆的面积也是随着圆的半径而不断变化的。然而,计算过程中有一个量是一直不变的,那就是圆周率3.1415926(为了便于大家阅读,本人这里省略后面圆周率的后面无数位。有兴趣的读者,可以自己手工计算)。在C语言中把这些计算中变化的量叫做“变量”,把这些不变的量叫做“常量”。 1.如何区分变量和常量 为了区分常量和变量,再来看看我们那个发工资的例子:工资是3000、税率是5%,问税后可以拿到多少薪水?在计算过程中,工资是不变的(3000),是一个常量。税率5%也是不变的,也是一个常量。计算结果虽然我们还不知道,但是可以肯定它也是不变的,也是一个常量。 有人会问,在这个例子中就看不到变量了吗?我们把这个例子改改,或者说把计算的问题改改,就会出现变量了。 假如,你是公司的会计,老板要发工资了,要你计算出该给每个人发多少薪水。这时,你得考虑了,每个人的税前工资都是不一样的,按照国家规定,处于每个工资段的税率也是不一样的。这样,要计算每个员工的税后工资时,税前工资、税率都是变化的了,如图2.4所示 在图2.4中,我们看到有三个员工,他们的工资分别是3000、2000和3000,税率为5%。我们可以看出税前工资是变化的,要给每个人发工资,就得用一个变量来表示税前工资了。税率不变,我们就用常量表示吧! 这个时候,就出现变量了。同样计算,对于不同的工资和不同的税率,结果也是不同的。所以在C语言编程是,就得用变量来处理。 2.回到C语言 从上面的描述,可以看出这样一条准则:在要进行C语言编程先得确定出,哪些数据是要作为变量处理,哪些数据是要作为常量处理的。判断的依据就是在用C语言处理时,这个数据是一直变化的还是一直不变的,这就是我们区分变量和常量的准则 |
![]() |
![]() |
![]() |
#6 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.3 使用变量和常量
在数据的世界中,数据被分为一成不变的常量和一直变化的变量。这样划分以后,使计算机操作数据也变得方便多了,只要计算机能操作变量和常量,那么它就可以操作任何数据了,这就叫做真正的提纲挈领。这一章就来看看在C语言中如何使用变量和常量! 2.3.1 变量的使用 在C语言中,要使用变量就得先对变量声明和定义。变量的声明是说明变量的类型的,而变量定义是创建要求的变量。通俗地说,声明变量就是告诉计算机“我要的是浮点型的变量,记住,一定是浮点型的!”;变量定义就是告诉计算机“我要的是浮点型的变量,现在我就要了!”,如图2.5所示。两者差别在于,声明变量的时候,只是要求,计算机并没有创建,而只有定义的时候才会创建变量。 在C语言中,变量的声明和定义是一体的。其语法形式如下: 变量类型 变量名; 其中,变量类型是要求计算机给的变量的类型;变量名是我们给问计算机要的变量取一个名字,我们以后就可以用这个名,来“召唤”计算机给我们的变量了。 好了,有人要问了,就像你说的,我要计算圆的面积,半径事先不知道,按照变量来,我也事先确定了半径是小数。我需要一个浮点型的变量来表示半径,在C语言中,浮点型的变量该怎么表示呢? 要计算圆的面积定义的半径可以表示为: float radius; 其中,float是变量的类型名称,radius是变量的名字。像上面的表示做了两件事情,半径变量的声明和定义。即告诉计算机,“给我一个浮点型的变量,记住一定要浮点型的”,又告诉计算机,“给我一个浮点型的变量,现在就给我”! |
![]() |
![]() |
![]() |
#7 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.3.2 命名的方式
在上一节,进行变量的定义和声明的时候,使用了两个概念:类型名和变量名,其实它们都是C语言中的标识符。标识符就是用来表示C语言中的各种东西的符号,如用来表示类型、变量等等。每一个标识符,是类型名也罢,是变量名也罢,都是一个名字。只要名字都要遵循一定的命名方式。命名方式涉及到两方面的内容:构成元素和构成方式。 构成元素就是C语言标识符的组成符号,构成方式就是C语言标识符的命名规则。 1.构成元素——符号 一门语言是由不同的符号组成。例如,汉语是由不同的汉字和标点符号构成。同样,C语言也是一门语言,组成它的符号有三类:命名符号、分隔计算符号、数值符号。这样表述简洁,如表2.4所示。 命名符号主要用于组成标识符,如英文字母和阿拉伯数字。给孩子取名字的时候,姓名都是汉字,而且姓得是百家姓。这里的汉字就类似我们的命名符号。 分隔符是用于C语言分块和计算的。例如,大括号用于主要分块,小括号主要用于数学计算等诸如此类。 数值符号在C语言中是表示数值。 这节只关注第一类用于命名标识符的符号,其它两类我们暂且不用关注。 ![]() |
![]() |
![]() |
![]() |
#8 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
2.构成方式
就像我们的姓名一样,C语言的标识符构成也有规范标准。在C语言中,标识符由首部和其他部分构成,如图2.6所示。首部就相当于我们的姓,其他就相当于我们的名。 ![]() 首部(姓)就是变量名的第一个组成元素。C语言要求首部只能使用大写或者小写的英文字母和下划线。 其他(名)是变量名中除过首部以外的部分。C语言对此没有要求,只要是大小写的英文字母、数字和下划线就可以。 为了理解标识符各个部分的差异。我们举个例子,在给孩子取名字的时候,姓名都是必须是汉字,姓还必须是百家姓里的一个。标识符也是如此,首部和其他都是命名符号,首部还一定不能是数字。 按照C语言对标识符名称的规范,像我们之前见到的,浮点数据类型“float”和变量名“radius”都是合格的标识符。 |
![]() |
![]() |
![]() |
#9 |
游客
帖子: n/a
|
![]()
爱好C语言的加Q1543877597或群141783677,大家一起讨论讨论~
|
![]() |
![]() |
#10 |
初级会员
注册日期: 2012-12-12
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
学习中!!!很有用!!!
|
![]() |
![]() |