3.2.1常量和变量
1.常量:在程序运行过程中,其值不能被改变的量
常量分:
整型常量、实型常量、字符常量、字符串常量、符号常量
整型常量:如1000,12345,0,-345
实型常量:十进制小数形式:如0.34 -56.79 0.0 、指数形式:如12.34e3(代表12.34x10三次方)
字符常量:如'?' 、 转义字符:如'\n'
字符串常量:如"boy"
符号常量:#define PI 3.141
>在C语言中整型常量可用十进制、八进制和十六进制三种数制表示
整型常量不允许写为二进制形式
>十进制整型常量:如1000,12345,0,-345
◆十进制整常数没有前缀。其数码为0~9
◆合法的十进制整常数:235、-528、65535、1627
◆不合法的十进制整常数:23(不能有前导0)、23D(含有非十进制数码)
>八进制整型常量:必须以数字0开头,即以0作为八进制数的前缀。
数码取值为0~7。八进制数是无符号数,只能表杀正数。
◆合法的八进制数:015、0101、0135777
◆不合法的八进制数:252(无前缀0)、0386(包含了非八进制数码),C0127(八进制不能表示负值)
>十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f
◆合法的十六进制整常数:0X2A(十进制数42)、0XA0(十进制数160)、0XFFFF(十进制数65535)
◆不合法的十六进制整常数:5A(无前缀0X)、0X3红X(X含有非十六进制数码
变量:变量在使用前要先定义。对于要保存整数的变量,应定义为整数变量。如何定义呢?
int 变量名1,变量名2,...;
int是定义整数变量的关键字。
这种变量为基本型整型变量。
2.变量:在程序运行期间,变量的值可以改变
变量必须先定义,后使用
定义变量时指定该变量的名字和类型
变量名和变量值是两个不同的概念
变量名实际上是以一个名字代表的一个存储地址
从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据,这样写代码比较方便
3.标识符:一个对象(常量,变量,数组,函数等)的名字
c于语言规定标识符只能由字母(大小写字母是不同的字符),数字和下划线3种字符组成,且第一个字符必须为字母或者下划线(不能是数字开头)
合法的标识符:sum,average,_total,Class,day,BASIC,li_ling
不合法的标识符:M.D ¥123,#123,#33,3D64,a>n
3.2.2数据类型
>所谓数据类型(Data type),就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式(格式)
>不同的数据类型分配不同的长度和存储形式
数据类型分:1.数值型数据的表示 2.非数值型数据的表示
数值型数据的表示:
整数、实数
机器数、真值
有符号数、无符号数
定点数、浮点数
实数规范化的指数形式
有关浮点数的其它知识
原码、反码、补码
BCD码
非数值型数据的表示:
中英文字符 character
声音 sound
图象 image,picture
视频 video
整型数据在计算机中如何存储?
计算机内存由只能存储0和1的存储单元组成。将整数转换为二进制,然后存储在计算机中。例如:65存作 0000 0000 ... 0100 0001
3.2.3整型数据
整型变量占几个字节?
由编译系统决定,在Visual C++6.0中占4个字节(32Bit)
int的类型修饰词:short,long,signed,unsigned
short:表示变量为短整型,即确定占2个字节的整型变量
long:表示变量为长整型,即确定占4个字节的整型变量(VC6中同基本型)
signed:表示变量为有符号型,即可以保存负数的整型变量(signed 可省略)
unsigned:表示变量为无符号型,即可保存正数和0,但不能保存负数的整型变量
short 和 long 不能同时选用;signed 和 unsigned不能同时选用.
signed 可以省略。若使用了修饰词,int 可以省略。
整型数据的分类:
最基本的整型类型:
基本整型 (int): 占2个或4个字节
短整型 (short int): VC++6.0占2个字节
长整型 (long int): VC++6.0占4个字节
双长整型 (long long int): C99新增的
2.整型变量的符号属性(正负)
》整型变量的值的范围包括负数和正数
◆可以将整型变量定义为“无符号”的类型(只能表示正整数)◆扩充的整形类型
基本整型int
有符号signed
短整型short
无符号unsigned
长整型long
双长整型long long
3.2.4字符型数据
>字符是按其ASCII代码(整数)形式存储的
>C99把字符型数据作为整数类型的一种
>字符型数据在使用上有自己的特点
1.字符型常量
用单引号括起的一个字符,是要处理的字符数据,不是变量名,这称字符型常量。
'a'、'b'、'c'、'1'、'5'、'0'、','、'!'、'='、'+'、'#'、'$'、' '(一个空格字符)
单引号必须为英文,不分左右
单引号内只能有字符,如'ab'错误!”也错误!
每个字符常量占1个字节(8个bit位)
单引号是定界符,它不属于字符内容
2.ASCII码及ASCII码表
标准ASCII码0~127
0~31,127:控制字符(不可显示32:空格字符')
48~57:数字字符'0'~'9按'0'-"9'的顺序依次递增排列;
65~90:大写字母字符'A'~'Z按字母表的顺序依次递增排列
97~122:小写字母字符'a'~'z按字母表的顺序依次递增排列
对应的大小写字母ASCII码差32.
3.字符型数据与整数的混用
字符型数据与整数的混用字符变作对应的ASCII码
在VC6中int型整数占4字节,字符型量占1字节互换时,整数只有最低1字节参与转换。
整数一字符:舍弃高位的3字节;字符→整数:高位3字节补0。
4.字符床数字字符常量与整型常量的区别
'5'字符型常量,ASCII码为53,存作53的二进制;
5 整型常量,直接存作5的二进制;
'5'的ASCII码不是5!
'5'-'0'='5'-48=5 5+'0'=5+48='5'
'9'-'0'='9'-48=9 9+'0'=9
5.转义字符
\ 是唯一特殊的字符,并不表示\本身,而是改变其后字符的原有含义
换行符:'\n' 响铃符:'\a' 跳格符:'\t'
n:newline换行符 a:alarm响铃符 t:table,制表符
'\ddd' dda为1~3位八进制数。表示ASCII码的八进制为ddd的字符
'\xhh' hh为1~2位十六进制数(x必须小写)表示ASCI码的十六进制为hh的字符
这使得一种字符可以有多种表示方法,如字符A可表示为:'A' '\101' '\x41'
转义字符用途:
1.可表示特殊字符(\ ' ")
2.可表示不能显示的控制字符
3.可通过ASCII码表示任意一个字符。
6.字符型变量
字符型变量占1个字节,保存一个字符(保存字符的ASCII码)
有符号:
signed char 变量名1,变量名2,...;或省略 signed
可保存负数,范围:-128~127
无符号:
unsigned char 变量名1,变量名2,... ;
不能保存负数,范围:0~255
3.2.5浮点型数据
1.浮点型常量
浮点型也称实型
>写为小数形式
3.14159 0.158 0.0-18.0
12. .36 1 1.0 1.
可以省略整数部分的0,也可省略小数末尾的0,但必须有小数点。
写为指数形式
E(或e)代表x10
例子:
2.1E5 表示 2.1x105
-0.8E2 表示-0.8x10-2
23.026e1 表示 23.026x10-1
.23026Ef 表示 0.23026 x101
1e0 表示1x100
口诀:
浮点小数莫忘点。
指数E(e)挑两边全
E(e)后必须是整数前后两边紧相连。
2.浮点型变量
变量在使用前要定义。对于要保存实数(即浮点数)的变量,应定 义为实型变量如何定义实型变量呢?
单精度型
float)变量名1,变量名2,..;
float是关键字
单精度型变量占4个字节 ,最大7位有效数字
双精度型2)
double变量名1,变量名2,…..;
double 是关键字
双精度型变量占8个字节,最大15位有效数字
应根据实际单精度型(float)和(双精度型(doubke)精度不同,可表示的数据范围不同。需要选用:既满足精度,又尽量避免大材小用
定义变量保存地球到太阳之间的距离:
1.495978707x1011米
double em=1.495978707e11:
定义变量保存全班同学平均成绩
float score;
定义变量保存宇宙间共有粒子数的估计值:
十的八十次方double nnn=lE80;
定义变量保存某超市进货数量
int number:
浮点型数据是用来表示带小数的实数>foat型(单精度浮点型)
◆编译系统为foat型变量分配4个字节
6位有效数字
◆数值以规范化的二进制数指数形式存放
浮点型数据是用来表示带小数的实数
>float型(单精度浮点型)
>double型(双精度浮点型)
◆编译系统为double型变量分配8个字节
◆15位有效数字
>long double(长双精度)型
浮点型数据是用来表示带小数的实数
>float型(单精度浮点型)
>double型(双精度浮点型)
◆编译系统为double型变量分配8个字节
◆15位有效数字
>long double(长双精度)型
3.2.6怎么样确定常量的类型
为了对应变量的类型,常量也有类型:
整型常量(不带小数点的常量)默认为基本型整型(int 型)
实型常量(带小数点或E(e)的常量)默认为双精度实型.(double 型)
若要改变常量的类型,1可在常量后加后缀:
>L(或I)整数后加L()表示常量为长整型(long),实数后加L(l)表示常量为长双精度型,二者在VC6中与不加L(l)的效果都相同。
(long double)
如:0L、125L、100000L、1.234567L
>U(或u)
只能加在整数后面,表示常量为无符号型,即非负:如OU、6U、65535u可既用L又用U,表示常量为无符号长整型,如:0LU、6LU、65535lu>F(或f)
表示常量为单精度型(foat)加在整数后也表示为foat型(不再为整数)。
例如:1.23f、356f,即有后缀F(D时,可不加小数点,也表示实数。