不变的的箱子—常量.ppt

上传人:za****8 文档编号:14551826 上传时间:2020-07-23 格式:PPT 页数:29 大小:517.06KB
返回 下载 相关 举报
不变的的箱子—常量.ppt_第1页
第1页 / 共29页
不变的的箱子—常量.ppt_第2页
第2页 / 共29页
不变的的箱子—常量.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
不变的箱子常 量,标识符和关键字 常量,不变的和变的箱子常量与变量,在C语言中,根据存储方式和表示形式,数据有常量和变量之分,就像方程有已知数和未知数一样。,标识符和关键字,1、标识符 2、关键字,标识符,C语言中,常量、变量、函数名称都是标识符。标识符,可以看做一个代号,就像日常生活中物品的名称一样。 标识符的名称可以由用户来决定,但也不是想怎么命名就怎么命名,它也需要遵循一定的规则。,标识符, 标识符只能是由英文字母(AZ,az)、数字(09)和下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。如: int MAX_LENGTH; /*由字母和下划线组成*/ 不能使用C语言中保留的关键字。 C语言对大小写是敏感的,程序中不要出现仅靠大小写区分的标识符,如: int x, X;/*变量x 与 X 容易混淆*/,标识符, 标识符应当直观且可以拼读,让别人看了就能了解其用途。标识符最好采用英文单词或其组合,不要太复杂,且用词要准确,便于记忆和阅读。切忌使用汉语拼音来命名。如: 标识符的长度应当符合“min-length ”就是错误的,会导致程序编译错误。因为 double 是关键字,不能做变量名。 下表列出了C语言中的所有关键字。,关键字,常 量,1 什么是常量 2 数值常量 3 字符常量 4 字符串常量 5 符号常量,常 量,其实我们已经使用过常量了,只是我们不知道,在前面的程序中输出过的“Hello World!”就是一个常量,是一个字符串常量,从这我们不难看出,常量的值在程序运行中是不能改变的。,什么是常量,在程序中,有些数据是不需要改变的,也是不能改变的,因此,我们把这些不能改变的固定值称之为常量。到底常量长什么样呢?我们就来看几条语句吧。 01 int a=1; 02 char ss=a 03 printf(“Hello n”); 在此,我们看一下“1”,“a”,“Hello”,这些在程序执行中都是不能改变的,它们都是常量。,什么是常量,细心一些的朋友可能会问:这些常量怎么看上去不一样呢? 确实,就像布可以分为丝绸、棉布、麻布各种类型一样,常量也是有种类之分的。,什么是常量,【范例1】 显示不同类型的常量的值 01 #include 02 int main(void)/*程序的入口*/ 3 04 printf(+125 n);/*输出+125并换行*/ 05 printf(-50 n);/*输出-50并换行*/ 06 printf(a n);/*输出a并换行*/ 07 printf(Hello n);/*输出Hello并换行*/ 08 return 0;/*程序无错误安全退出*/ 在本例中,有四个常量,分别是数值+125,-50,字符“a”和字符串“Hello”。这些就是常量的不同类型的值。这里,我们可以把常量分为数值常量、字符常量、字符串常量和符号常量(后面我们会具体介绍)。,数值常量,上例中的+125,-50都是数值常量,通常表示的是数字,就像数字可以分为整型,实型一样,数值常量也可以分为整型常量和实型常量。数字有正负之分,数值常量的值当然也有正负。在上面的例子中+125带的是“+”,当然也可以不带,而-50前的“-”是必须要带的。,数值常量,【范例2】 在命令行中输出数值常量。 01 #include 02 int main(void) 03 04 printf(123n);/*输出123*/ 05 printf(45.31n);/*输出45.31*/ 06 printf(-78n);/*输出-78*/ 07 printf(-12.8975n);/*输出-12.8975*/ 08 return 0; 第4行输出一个正整数123,第5行输出正实数45.31,第6行输出 负整数-78,第7行输出负实数-12.8975,这些都是数值常量。,数值常量,在C语言中,数值常量如果大到一定的程度,程序就会出现错误,无法正常运行,这是为什么? 原来,C程序中的量,包括我们现在学的常量,也包括在后面要学到的变量,在计算机中都要放在一个空间里,这个空间就是常说的内存。你可以把它们想成是一个个规格定好了的盒子,这些盒子的大小是有限的,不能放无穷大的数据。那到底能放多大?学到数据类型就会有所认识。在这里只需记住,整数也好,小数也好,不是你想放多大就能放多大的。不过你不用担心,你能碰到的数不管多大都能想办法放进程序中去,具体的办法你慢慢就会学会的。,字符常量,在C语言中,字符常量就是指单引号里的单个字符,像上例中的“a”,这是一般情况,还有一种特殊情况,比如:“n”,“a”,像这样的字符常量就是我们所说的转义字符。这种字符是以反斜杠()开头,后面跟一个字符或一个八进制或十六进制数,表示的不是单引号里面的值,而是“转义”,即转化为具体的含义。 下面是C语言中常见的转义字符表:,字符常量,字符常量,注 意:在C语言中,3和 3 的含义是不一样的,一个是数值,可运算,一个是字符,一个符号而已。 而a和A同样也是不一样的,字符区分大小写。,字符常量,【范例3】 比较字符常量的含义。 01 #include 02 int main(void) 03 04 printf(a,A n);/*输出a,A并换行*/ 05 printf(123x20 x20n);/*输出123、空格、单引号、空格和双引号,最后换行*/ 06 return 0; 范例中不仅用到数值常量,比如123,字符常量,比如a,A等,还用到转义字符,如n,、x20等。第4行首先输出一个小写字母“a”,然后又输出一个大写字母“A”,接着输出一个转义字符“n”,相当于输出一个换行符。第5行先输出一个数值常量123,接着输出一个转义字符“x20”,相当于输出1个空格,接着输出转义字符“”,相当于输出1个单引号,接下来又输出空格,双引号,最后输出换行符。,字符串常量,在前面的Hello World程序中,程序中输出的“Hello,World”就是字符串常量,用双引号括起来的形式显示的,其值就是双引号里面的字符串。所以字符串常量可以定义为在一对双引号里的字符序列或转义字符序列。比如“”、“ ”、“a”、“abc”、“abcn”等等。 我们把称之为空串,即一个不包含任意字符的字符串,而 我们称之为空格串,是包含一个空格字符的字符串。二者不能等同。,字符串常量,比较a和a的不同。 书写形式不同:字符串常量用双引号,字符常量用单引号。 存储空间不同:在内存中,字符常量只占用一个存储空间,而字符串存储时必须有占用一个存储空间的结束标记o,所以,a占用一个,而a占用两个。 二者的操作功能也不相同:例如,字符常量可进行加减运算,字符串常量不能。,符号常量,当某个常量引用起来比较复杂而又经常要被用到时,可以将该常量定义为符号常量,也就是分配一个符号给这个常量,在以后的引用中,这个符号就代表了实际的常量。这种用一个指定的名字代表一个常量称之为符号常量,即带名字的常量。 在C语言中允许将程序中的常量定义为一个标识符,这个标识符称为符号常量。符号常量必须在使用前先定义,定义的格式为: #define 其中,通常使用大写字母表示,可以是数值常量,也可以是字符常量。,符号常量,一般情况下,符号常量定义命令要放在主函数main()之前。 如: #define PI 3.14159 表示是用符号PI代替3.14159。在编译之前,系统会自动把所有的PI替换成3.14159,也就是说编译运行时系统中只有3.14159而没有符号。,符号常量,【范例4】 使用符号常量计算圆的周长和面积。 01 #define PI 3.14159/*定义符号常量PI的值为3.14159*/ 02 #include 03 int main(void) 04 05 float r; 06 printf(请输入圆的半径:);/*提示输入圆的半径*/ 07 scanf(%f, 11 ,符号常量,由于我们在程序前面定义了符号常量PI的值为3.14159,所以经过系统预处理,程序在编译之前已经将“2*PI*r”变为“2*3.14159*r”,将“PI*r*r”变为“3.14159*r*r”,然后经过计算并输出。 代码第1行的#define就是预处理命令。程序在编译之前首先要对这些命令进行一番处理,在这里就是用真正的常量值取代符号。,符号常量,有的人可能会问,那既然在编译时都已经处理成常量,为什么还要定义符号常量。原因有两个。 易于输入,易于理解。在程序中输入PI,我们可以清楚地与数学公式对应,且每次输入时相应的字符数少一些。 便于修改。此处如果想提高计算精度,如把PI的值改为 3.14159,我们只需修改预处理中的常量值,那么程序中不管你用到多少次,都会自动跟着修改。,符号常量,提 示: 符号常量不同于变量,它的值在其作用域内不能改变,也不能被赋值。 习惯上,符号常量名用大写英文标识符,而变量名用小写英文标识符,以示区别。 定义符号常量的目的是为了提高程序的可读性,便于程序的调试和修改。因此,在定义符号常量名时,应尽量使其表达它所代表的常量的含义。 对程序中用双引号括起来的字符串,即使与符号一样,预处理时也不做替换。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!