版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计程序设计第第 章章基本数据类型和表达式基本数据类型和表达式 C C的基本数据类型的基本数据类型 常量和变量常量和变量 简单的输入输出控制简单的输入输出控制 指针和引用指针和引用 运算符和表达式运算符和表达式类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e
2、-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,思考思考下列十六进制的整型常量表示中,(下列十六进制的整型常量表示中,( )是错误的。是错误的。A)0 xe B)0 x4g C)0X12 D)0XAEE E或或e e的前面要有数字,且的前面要有数字,且E E的后面的指数必须的后面的指数必须为整数。为整数。/不合法不合法注注意意字符数据在内存中的存储形式字符数据在内存中的存储形式将一个字符常量存放到内存单元时,将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到
3、内存单实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的元中去,而是将该字符相应的ASCIIASCII代码代码放到存储单元中。放到存储单元中。 c1c1的值为的值为a,c2a,c2的值为的值为bb,如下图,如下图: :它的存储形式就与整数的它的存储形式就与整数的存储形式类似存储形式类似, ,在在C+C+中字中字符型数据和整型数据之间符型数据和整型数据之间就可以通用。就可以通用。abc0char c; /定义一个字符变量定义一个字符变量c=a; c=a;思考思考:字符串常量字符串常量 和和abcabcnn在内在内存中分别占用多少空间存中分别占用多少空间? ?内容内容起始地址起始地址空间
4、大小空间大小由类型由类型决定决定与变量与变量名名a a关联关联对应变对应变量值量值100110011005100510091009100d100d300300#define PI 3.14159 操纵符操纵符作作 用用dec设置数值数据的基数为设置数值数据的基数为10hex设置数值数据的基数为设置数值数据的基数为16oct设置数值数据的基数为设置数值数据的基数为8setfill(c)设置填充字符设置填充字符c,c可以是字符常量或字符变量可以是字符常量或字符变量setprecision(n)设置浮点数的小数位数为设置浮点数的小数位数为n(包括小数点)(包括小数点)setw(n)设置字段宽度为设置
5、字段宽度为n 要求输出的浮点数要求输出的浮点数3.141593.14159占占6 6个位置,小数个位置,小数点后保留点后保留3 3位有效数字,空格用位有效数字,空格用00代替,输出代替,输出语句为:语句为:coutsetfill(0)setw(6)setprecision(4)3.14159; 输出结果为:输出结果为: 03.14203.142例例内存i1001000H1004Hp1000H2000H 一般形式:一般形式: 存储类型存储类型 数据数据类型类型 *指针变量名;指针变量名;合法标识符指针的目标变量的数据类型表示定义指针变量不是*运算符例 int *p1,*p2; float *q
6、; 注意:注意:1、int *p1, *p2; 与与 int *p1, p2;2、指针变量名是、指针变量名是p1,p2 ,不是不是*p1,*p23、指针变量只能指向定义时所规定类型的变量、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,、指针变量定义后,变量值不确定变量值不确定,应用前必须先赋值,应用前必须先赋值2.2.指针变量的定义指针变量的定义例例 int i; int *p=&i;变量必须变量必须已说明过已说明过类型类型应一致应一致例例 int *p=&i; int i;例例 int i; int *p=&i; int *q=p;用已初始化指针变量作初值
7、用已初始化指针变量作初值例 main( ) int i=10; int *p; *p=i; cout*p; 危险!例 main( ) int i=10; int *p; p=&i; cout*p; 指针变量必须先赋值,再使用.2000200420062005整型变量i10指针变量p200120022003随机 指针变量与其所指向的变量之间的指针变量与其所指向的变量之间的一些等价关系一些等价关系例:例: int i, *i_pointer=&i;3i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=33
8、i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=3一般情况下,定义引用时必须初始化,同时引用的类型一般情况下,定义引用时必须初始化,同时引用的类型与变量的类型一致。例如:与变量的类型一致。例如:int a=3;int &m=a; /或或 int &m(a);等效于等效于等效于等效于等效于等效于等效于等效于 int a=3; int b=+a; int c=a+;近水楼台先得月近水楼台先得月4a a值值表达式值表达式值a a值值表达式值表达式值345444则:则:a:5,b:4,c:4。相应的,有相
9、应的,有-a和和a-。增量和减量操作符都是单增量和减量操作符都是单目操作符。目操作符。 #include void main() int a=12,b=34; couta+ +b ; coutb+ +aendl;思考题思考题 1.1.自增运算符自增运算符(+)(+)和自减运算符和自减运算符(-)(-)只能只能用于变量,而不能用于常量或表达式。用于变量,而不能用于常量或表达式。 2. +2. +和和-的结合方向是的结合方向是“自右至左自右至左”,如:,如:-i+-i+相当于相当于-(i+)-(i+)3.3.自增运算符(自增运算符(+)和自减运算符()和自减运算符(-)使用十分灵活,但在很多情况下
10、可能出现使用十分灵活,但在很多情况下可能出现歧义性,产生歧义性,产生“意想不到意想不到”的副作用。的副作用。注意注意:5左值左值: :赋值运算符左侧的标识符赋值运算符左侧的标识符注:表达式注:表达式a+ba+b和常变量不能作为左值和常变量不能作为左值变量可以作为左值变量可以作为左值, ,赋值表达式可作左值赋值表达式可作左值右值:出现在赋值运算符右侧的表达式右值:出现在赋值运算符右侧的表达式赋值表达式中的赋值表达式中的“表达式表达式”,又可以是一个赋值表,又可以是一个赋值表达式。达式。a=(b=5)a=(b=5)整个表达式的结果为右边的表达式值整个表达式的结果为右边的表达式值int x(1),y
11、(3),z(5); x+=y*=z-=2; (10,9,3)(2,7,11)z=(x*=2)+(y+=4)+2;/从右向左结合从右向左结合思考思考2 ab!aa&ba|b真真假真真真假假假真假真真假真假假真假假 用逻辑运算符将两个关系表达式连接起来式子用逻辑运算符将两个关系表达式连接起来式子int a(3),b(0); !a&a+b&a+; a|b|b+ expr1 & expr2 expr1 & expr2 expr1 | expr2 expr1 | expr2 (1)25 & 58(2)!(3=6)(3)!(24) | (37)(4)!(5=
12、7) & (4=9)思考题思考题 3: 0000 0011 | 6: 0000 0110 0000 0111 (7) 3: 0000 0011 & 6: 0000 0110 0000 0010 (2) 3: 0000 0011 6: 0000 0110 0000 0101 (5) 3: 0000 0011 1111 1100 (-4)如如a的初值为的初值为0,则表达式则表达式x=(a+1, a+2, a+3, a+4, a+5)的值为的值为 5如如a的初值为的初值为0,则表达式则表达式x=(a+=1, a+=2, a+=3, a+=4, a+=5)的值为的值为15第一次上机总结
13、第一次上机总结1.容易写出中文的引号,分号。错误提示:错误提示:error C2018: unknown character 0 xa3“2.变量命名时出现中文和空格,不能惯用数学的命名方式。变量命名时出现中文和空格,不能惯用数学的命名方式。注意:注意:标识符是由标识符是由大小写字母、数字、下划线大小写字母、数字、下划线组成,并且组成,并且以字母或下划线开始。以字母或下划线开始。3.变量未定义就使用。变量未定义就使用。4.关键词拼写有误,如关键词拼写有误,如:mian,count等等5.同时打开两个文件运行。同时打开两个文件运行。aj?i:j; x? a b若若x=0,则条件表达式的值为字符,
14、则条件表达式的值为字符b的的ASCII码。码。若整型变量若整型变量a、b、c、d中的值依次为:中的值依次为:1、4、3、2。则条件表达式则条件表达式ab?a:cd?c:d的值为的值为 表达式中各类数值型数据间的混合运算表达式中各类数值型数据间的混合运算在表达式中常遇到不同类型数据之间进行运算,如在表达式中常遇到不同类型数据之间进行运算,如intint i; i;float f;float f;double d;double d;long e; long e; 10+a+i10+a+i* *f-d/ef-d/e进行进行10+a的的运算,运算结果运算,运算结果为为107进行进行i*f的运算的运算运算结果为运算结果为double型型 整数整数107与与i*f的积相加的积相加,结果结果为为double型型将变量将变量e转换转换成成double型,型,d/e结果为结果为double型。型。将将10+a+i*f的结果与的结果与d/e的的商相减,结果商相减,结果为为double型。型。 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:心血管防控多学科融合进展解读 心内科查房
- 老年慢性病VR用药安全管理
- 初中2025年说课稿亲情主题班会说课稿
- 初中生网络成瘾心理韧性说课稿
- 糖尿病胰岛素治疗知情同意恐惧管理
- 2026年中等职业思想政治课程说课稿
- 精神疾病队列研究失访的特殊性与应对
- 2026年阿轲说课稿语文初中
- 精准医学下基因芯片技术的医工结合创新
- 综合复习与测试说课稿2025学年高中英语牛津上海版高中一年级第一学期-牛津上海版2004
- 数据共享安全管理办法
- 2025年全国辅警招聘考试题库(含答案)
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 【基于SLP和ABC分类法的北海W快运仓储管理优化研究13000字(论文)】
- 工程材料过账协议书
- 浙江森隆机电有限公司年产2万台无油式空压机、6万台电机、1万台电焊机、1万台水泵、1万台切割机技改项目环评报告
- GB/T 196-2025普通螺纹基本尺寸
- 籼型杂交水稻文两优87的育种与高产栽培技术
- 研究生攻读(硕)博士学位期间拟开展的研究计划范文
- 解除医保服务协议申请书范文
- 大班音乐《钟表店》课件
评论
0/150
提交评论