数据类型常量及变量_第1页
数据类型常量及变量_第2页
数据类型常量及变量_第3页
数据类型常量及变量_第4页
数据类型常量及变量_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 基本数据类型与表达式,2.1 C语言的基本数据类型 2.2 常量与变量 2.3 运算符与表达式 2.4 数据类型转换,数据类型 数据类型总表,C 数 据 类 型,基本类型,构造类型,指针类型,空类型void,字符类型 char,整型,实型,数组,结构体 struct,共用体 union,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,枚举类型 enum,整数类型 整数类型可分为四种: 基本型:(signed)int ,占2个字节(-3276832767) 短整型: (signed)short(int),占2个字节(-3276832767) 长整型:

2、(signed)long(int),占4个字节 (-2147483648-2147483647) 无符号型: unsigned long (无符号长整型)(0-4294967295) unsigned short (无符号短整型) (0-65535) unsigned int (无符号整型) (0-65535),思考:请写出 10和-10在存储单元中以int型的存储情况,main() int a,b; a=32767; b=a+1; printf(“%d,%dn”,a,b); ,b:,32767,-32768,若要想b的值为32768,应该对以上程序作何修改?,整形类型,在语言中整型数据一般有

3、八进制、十六进制和十进制三种。 十进制整数表示与数学上表示相同。 八进制表示以数字0开头。 如:015(十进制为13) 0101(十进制为65) 而079 08001都不合法 十六进制表示以0X开头。 如:0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535),若要表示长整型(long)整数,在数的最后加表示长整型的后缀修饰符号字母“L” 。,实数类型可分为两种: 单精度型: float ,占4个字节 双精度型: double,占8个字节 在C语言中实型数据有两种表现形式: (1)十进制形式。 (2)指数形式。如546E+3代表546x103 注意:指数形

4、式字母E之前必须有数字,E后面的指数必须为整数。如:E2,4.6E+0.5,9E7.5都不合法。,实数类型,1、字符常量: 用单引号括起来的一个字符 如: s , * , 6,说明: 1. a 和A是两个不同的字符 2. 单引号内不能是单引号或反斜杠,3、字符数据在内存中的存储形式及使用方法 (1) 字符数据在内存中以相应的ASCII码存放, 占1个字节,如:字符A, 其ASCII码为65,内存中存放为,字符型数据,2、字符变量 例: char a , b, c; a=g; b=$ ; c=6;,(2) 字符数据和整数在一定范围内互相通用,#include void main( ) char

5、ch; ch=a; printf(%cn,ch); printf(%dn,ch); ,输出: a 97,#include void main( ) char ch; int x; ch=A; x=ch+32; printf(x=%d,ch=%cn, x,ch); printf(%cn, x); ,输出: x=97,ch=A a, 字符数据与整数进行算术运算, 字符数据用整数形式输出,Void main() char c1=a,c2=b,c3=c; int a=3.5,b=A; printf(“a=%d b=%c”end”n”,a,b); printf(“a%cb%cbc%ctabcn”,c1,

6、c2,c3); 结果:a=3 b=A “end” aabcc abc,字符串常量 : 由一对双引号括起来的字符序列 如: abcd , w123 , k , ,注意: k与k是不同的 k 是字符常量,在内存中占1个字节 k 是字符串常量,在内存中占2个字节,字符串常数在存储时计算机系统会自动在字符串末尾加 一个结束标志 0, 因此字符串的实际长度为字符个数加1,基本数据类型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,#include #define PI 3.14 void main( ) int r; float c, s, v;

7、r=3; c=2*PI*r; s=PI*r*r; printf(%f, %f, c, s); ,例: 计算圆的周长和面积,什么是常量和符号常量?,什么是变量、怎样进行变量声明? 什么是整型数据、实型数据?,整型常量、变量、实型变量的使用?,2.2 常量与变量,常量与符号常量 变量与变量定义,一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量,如 #define PRICE 30,常量 定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 标识符 常量数据,例201.c 符号常量举例 #def

8、ine PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(total=%d,total); ,运行结果:total=300,整型常量(整常数) 三种形式: 十进制整数:由数字09和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字07表示.如0123,011 十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff,问题: 0123 = ( )10 0 x123 = ( )10 0Xff = ( )10,整型常量的类型 根据其值所在范围确定其数据类型: 整数值若在-3276

9、832767内,则默认为它是int型 整数值若在-21474836482147483647之间,可使用长整型常量表示。 在整常量后加字母l或L,认为它是long int 型常量 无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 一个非负的整数,只要它的值不超过相应变量的取值范围,就可以赋给unsigned型变量。,例 30000 为int型 65536 为long int 型,例 12 与 12L,例 358u,0 x38Au,235Lu 均为无符号数;0XA5Lu表示十六进制无符号长整数A5.,例 可以将6000赋给一个 unsigned int型变量,但却不可以将6600

10、0赋给一个unsigned int型变量(将会出现溢出错误),实型常量(实数或浮点数) 表示形式: 十进制数形式:由数字和小数点组成,小数点的左右至少一边要有数字。 (必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:由尾数、e或E和指数部分组成,E的两边都至少要有一位数且E的右边只允许是整数形式(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5,实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型,规范化的指数形式,字符常量 定义:用单引号括起来的单个普通

11、字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a 60 -0 483 -(),例: A-101-x41-65,如 A65, a97, 048 , n10,如 a A ? n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,例 转义字符举例(202.c) main() printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C); ,运行结果:(屏幕显示) A B C I say:”How are you?” C Pr

12、ogram Turbo C,字符常量与字符串常量不同,字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 0 作为字符串结束标志,变量-其值可以改变的量 概念: 每个变量有一个名字:用标识符表示。 每个变量有一个存储空间(存储单元),该单元中的状态所表示的数为此时变量的值。,变量初始化:定义时可以赋初值,合法标识符,变量的使用:先定义,后使用,变量定义的一般格式: 数据类型 变量1,变量2,变量n;,如:int a,b,c; float x,y;,int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1;

13、 int x=y=z=1;(X),可以连续赋初值, 但定义变量时不能连续赋初值 应为:int x,y,z; x=y=z=1;,变量定义位置:一般放在函数开头,例204.c: main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data); ,整型变量 定义方法: int a1,a2; unsigned int b1,b2; 一个整型常量只可以赋给能容纳下其值的整型变量。 如a1,a2的取值范围为-32768-32767 b1,b2的取值范围为 0-65535 如果:a1=65535; 或者: b1=-1; 在

14、内存中数值将不是所赋的数值。,实型变量 实型变量的说明形式如下: float 变量名1,变量名2, 变量名n; double 变量名1,变量名2, 变量名n; float:占4字节,提供7位有效数字 double:占8字节,提供1516位有效数字,字符型变量 char 变量名1,变量名2,变量名n; 如:char c1,c2 ; c1=a;c2=b; 一个字符型变量的值只能是一个单个字符;在内存中占一个字节; 字符变量存放的是字符的ASCII码; char与int数据间可进行算术运算; 由于字符型变量在内存中是以字符的ASCII码一个无符号整数的形式来存放的,所以在一定范围内,字符型数据和整型

15、数据是可以互相通用的,二者的区别仅在于:字符型常量占一个字节,而整型常量占两个字节。,例206.c a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */,Main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); ,a b 97 98,【例209.c】将小写字母转化为大写字母。 main( ) char c1,c2; c1=a;c2=b; c1=c132; c2=c232; printf(%c,%c,c1,c2); 程序的输出结果是:A,B 这个例子是将小写字母转化为大写字母的程序。我们在对ASCII码字符表进行观察后会发现,大小写对应的字母,它们之间的ASCII码正好相差32。利用这个特性和上一个特性,我们可以编写出非常简单的大小写字母转换程序。,例 /*207.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论