第二章
第二章??????常量变量和类型转换
2.1.1数字常量
??? 数字常量包括整型常量和浮点型常量,浮点型常量又称实数。
????1.整型常量
???? HYPERLINK "/incsearch/search.asp?key=C%D3%EF%D1%D4" \t "_blank" C语言中整型常量有三种不同的表示形式:十进制、八进制和十六进制。
??? (1)十进制。这是一种常用的表示形式,它将直接给出数字,即在数字前不加任何前缀。例如,12,259,703等为十进制表示。
??? (2)八进制。表示八进制数字时,要加前缀。,即在数字前面加……例如,017,0532.0416等为八进制表示。其中,017换成十进制数为15
??? (3)十六进制。表示十六进制数字时,要加前缀Ox或OX,即在数字前面加。、或。X。例如,Ox17,Oxae5, OX4t等为十六进制表示。其中,0x17换成+进制数为23
??? 整型数又分为长整数、短整数和无符号整数。长整型数在表示上与其他整型数的区别是加后缀L或1,所谓后缀是指在数字后面加写的字母。例如,12345L , Qx78abfl)等。无符号数的后缀是U或u。例如, 7 643U , 04216u等。
??? [例2.妇不同进制数的表示及相互转揍。
??? main)??? {??? ptitxtf (" %d\t }x\t%o\n",29 29,29);??? ptintf (" % d\t } x\t 00/ao\n" , 025, 025,025);??? ptintf (" 0 o d\t 0 o x\t 0/uo\n",Oxla,Ox1a,Oxla);??? printf (" 0 o u\t %ld\n" ,47675u,742611);??? }
??? 请分析该程序执行后的输出结果。
??? 2.浮点型常量
??? 浮点型常量又称为实型常量。它有两种表示形式:十进制,,,,数形式和指数形式。
??? (1)十进制,,,,数形式。它是由数字和,,,,数点组成的(必须有,,,,数点)。一般数值不是很大或
??? 很,,,,的数采用,,,,数形式表示,这种形式方便易读。例如,。。567, 5fi7. 0,. 5fi7, 567.,。。。等都是合法的,,,,数表示形式。
??? (2)指数表示形式。指数表示法又称科,,,,记数法。该表示形式中,须有字母e或E,且在该字母之前必须有数字,在该字母之后的指数必须为整数。对于过大或过,,,,的数值采用这种表示方法。这种表示方法简明清晰。具体格式如下所示:
??? (整数部分).(,,,,数部分)(指数部分)
??? 字母e左边部分可以是(整数部分).(,,,,数部分),也可以只有(整数都分》不含,,,,数点,或者只有
??? 1234e3,1234E一2,12. 34e一3,。1234E5,Oe0等。
??? 而下面的浮点数表示是错误的:
??? e2,3. 5e1. 5,。e5,e等。
??? 其出错原因是:e2在字母e前面没有数字,3. 5e1. 5是字母e后面指数为,,,,数,。‘在字
??? 母e前面只有,,,,数点(.)而没有数字;e是在字母e前无数字。
??? 另外,关于负的浮点数的表示,例如,-5. 0, -3. 2e5等,一般应归为表达式,因为负号
??? (一)在C语言中是一种单目运算符。但是,有些书上,也认为是常量。关于负的整数也是如此。本书认为负数为表达式。
??? 例2浮点型常量的输出。
??? main ( )??? {??? printf(" 00/nf\t%e\t%g\n",12e3,12.3,12.3),??? printf (" 00/uf\t }e\t }g\n" ,12.3456,12. 3456,12. 3456)??? printf (" %d\t%.2f\tpOf V,",12. 3. I2. 345,123);
??? 分析上述程序的输出结果,并上机验证。
?2.1.2字符常t和字符串常量
??? 字符常量由单引号括起的一个字符组成的。例如,
??? ‘B’,‘d’,'9’,'\n’,‘\0,’,’\”等
??? 都是字符常量,单引号是字符常量的定界符。单引号符可由}‘\”表示,即使用了转义序列的形式。因此,在字符常量中,对一般可打印字符采用直接写出字符符号的方法,而对不可打印字符采用转义序列的方法。
??? 在 HYPERLINK "/incsearch/search.asp?key=C%D3%EF%D1%D4" \t "_blank" C语言中,字