




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章 C+语言基础 2.1 标识符和关键字一、标识符标识符是一个字符序列,用来标识变量、函数、数据类型等。命名规则:1. 所有标识符必须由一个字母(a-z或A-Z)或下划线(_)开头;2. 标识符的其它部分可以用字母、下划线或数字(0-9)组成;3. 大小写字母表示不同意义, 代表不同的标识符。正确不正确smart5smart(不能数字开头)_decisionbomb?(有非法字符?)key_boardkey.board(有非法字符.)注意1. 虽然允许用下划线开头,但尽量避免使用,因为编译器常常已定义一些下划线开头的标识符。2. C+本身没有限制标识符中字符个数,但大多数的编译器都有限制。编译器限制的数字很大,例如255。3. C+语言的标识符经常用在以下情况中:1) 标识对象或变量的名字2) 类、结构和联合的成员3) 函数或类的成员函数4) 自定义类型名5) 标识宏的名字6) 宏的参数二、关键字C+中预定义的标识符称为关键字,也称保留字。关键字是一种特殊的标识符。关键字具有特定的含义,不能对它们再定义。标准C+中预定义了63个关键字,例如int、float、char、void、if、else、while、for等。C+中还另外定义了11个运算符关键字: and、and_eq bitand、bitor compl、not、not_eq or、or_eq、xor、xor_eq2.2 基本数据类型一、数据类型说明void类型也是基本数据类型,但它不是一个完整的类型,只能作为更复杂类型的一部分。没有void类型的变量,其或者用于指定一个函数没有返回值,或者作为指针类型,表示该指针指向未知类型的变量。例:void x; /错误,没有void变量void f( ); /正确,函数f不返回值void *pv; /正确,指针pv指向未知类型的变量二、类型转换1. 横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转换成double型再进行运算,结果亦为double型。2. 纵向箭头表示当运算符两边的操作数为不同类型时的转换,如一个long型数据与一个int型数据一起运算,需要先将int型数据转换为long型,然后两者再进行运算,结果为long型。3. 所有这些转换都是由系统自动进行的,使用时只需了解结果的类型即可。实例/ch02_01 类型转换 #include void main()char a = x;int b = 3,f = 2;float c = 2.5678;double d = 5.2345; long e = 32L;couta - b + d / c - e * fendl;(1)进行d / c运算时,要将c转换成double型,运算的中间结果为double型;(2)进行e * f运算时,将f转换为long型,运算的中间结果为long型;(3) 进行a - b运算时,将a转换为int型(数值为ASC码值120),运算的中间结果为int型;(4)当(3)的中间结果与(1)的中间结果运算时,将(3)的中间结果转换为double型,运算的中间结果为double型;(5)当(4)的中间结果与(2)的中间结果运算时,将(2)的中间结果转换为double型,得出最后结果。2.3 变量与常量一、什么是变量变量是机器一个内存位置的符号名,在该内存位置可以保存数据,并可通过符号名进行访问。变量有三个特征: 每个变量有一个名字 每个变量有一个类型 每个变量保存一个值变量定义格式数据类型 变量名1 初始值1, 变量名2 初始值2, .;数据类型是指C+有效的数据类型,如int、double、long等。方括号中的内容是可选的,它是在变量定义时,给变量赋初值。下面是几个变量定义的实例:long n; 定义了一个长整型变量n,未赋初值double a, b = 0.5; 定义双精度型变量a、b,a未赋初值,b的初值为0.5 实例/ch02_02 变量的定义#include void main ( ) int Days = 5; float Hours, payRate, Pay; Hours = 7.5; payRate = 38.55; Pay = Days * Hours * payRate; cout Pay = Pay n;第1行:定义整型变量Days,初始化为5。第2行:定义三个实型变量。第3行:两个赋值语句。第4行:计算工资Pay。第5行:输出结果。二、整型变量整型变量可用short、int、long定义。如:short age = 20;int salary = 65000;long price = 4500000;由于整数所占的存储空间在不同的计算机上是不同的,所以在代码移植时容易出现问题。整形数的其他表示整型数能表示成10进制、8进制或16进制。如果一个整型数有前缀0,则表示是8进制数,有前缀0x或0X,表示是16进制数。如:92 / 10进制0134 / 8进制0x5C / 16进制8进制数只能使用数字0-7;16进制数可用0-7及A-F (或a-f)表示。 三、浮点型变量浮点型变量可用float或double定义,后者在机器内存中占用的字节数更多,所以有效位数更多,表示的数字范围也更大。如:float Rate = 0.06; double pi = 3.141592654;一个实型数,如0.06总是假定为double型,除非有F或f后缀,才被处理为float型。若有L 或 l后缀,则被处理为long double型。实型数也可以表示成指数形式。例如:0.002164 可以写成:2.164E-3或2.164e-3 E或e代表指数。实例/ch02_03整形变量#include iostream.h#include iomanip.h void main( )char ch=97;coutchendl;float f1=0.123456789123456789;double f2=0.123456789123456789;coutsetprecision(20)f1endl;coutsetprecision(20)f2endl; 程序运行结果为:a0.1234570.123456789123457四、字符型变量字符变量用char定义,一个字符变量仅占用一个字节,存放该字符的编码。该编码是一个数字,并依赖于所使用的编码系统(即与机器相关)。最普通的编码是ASCII,即美国信息交换标准编码。如:字符A的ASCII码为65,字符a的ASCII码为97。char ch = A;C+的字符由下列字符组成:1.大小写英文字母a-z,A-Z2.数字字符0-93.特殊符号空格 ! # % & * _ - + = / | . , ; ? “ ( ) 转义字符n / 换行r / 回车t / 水平tabv / 垂直tabb / 退格f / 进纸 / 单引号 ()“ / 双引号 (”) / 反斜杠 ()12 / 换行(10进制编码 = 10)11 / 水平tab (10进制编码= 9)101 / A (10进制编码= 65)0 / null (10进制编码= 0)字符串字符串是一个连续的字符系列,用一对双引号包围起来,由一个0字符结尾。假定有一个字符串为“HELLO”,它在内存中的存储,参见下图。一个长字符串可以占两行或多行,但在最后一行之前的各行应用反斜杠结尾。例如:Example to show the use of backslash for writing a long string 上面的字符串与下面的单行字符串等价:Example to show the use of backslash for writing a long string注意1. 不要把字符与字符串混淆了。例如:“A”与A不等价,前者由两个字节组成(字符A与字符0),而后者只有一个字节。2. 最短的字符串是空字符串(“”),它仅由一个结尾符0组成。3. C+中,没有字符串类型,而是用字符数组来处理字符串。五、布尔型变量布尔类型变量用bool关键字定义,其值为true或false。整型值也可赋给bool变量,但会被隐式转换成true或false。整型值非0时,转换为true,整型值为0时,转换为false。同样,布尔值也可赋值给整型变量,但要进行隐式转换。布尔值为true时,转换为1,布尔值为false时,转换为0。布尔值也可插入输出流cout:当布尔值为true时,在屏幕上打印1;当布尔值为bool时,在屏幕上打印0。六、常量在程序运行过程中其值不发生变化的量。常量可分为直接常量与符号常量。 直接常量就是常数; 符号常量就是用一个标识符代表某个常量。程序设计中,尽量使用符号常量来代替常数,这是一种好的编程习惯,这样可以增加程序的可读性、可维护性。例如,在数值计算中,我们会经常遇到一些常量,比如圆周率。如果把它定义成符号常量,当需要更改常量值的时候,只需要更改符号常量的定义语句即可。1.符号常量用关键字const声明,其格式如下:const 数据类型常量名常数值;如:const int a= 1234; /定义a为整型常量其值为1234const char b=a; /定义b 为字符型常量其值为a注意:常量是指不会改变的数值,即使经过程序执行也不会改变其值。2.define定义符号常量#define PI 3.14159定义符号常量PI,然后在程序中使用PI,跟使用常数3.14159的效果是一样的。编译器在编译时,把符号PI替换成3.14159,当需要修改PI的值时,只需要修改上面的语句即可。两者之间的区别:const常量有数据类型,而宏定义的常量没有数据类型。编译器对const型常量进行类型安全检查,而对宏定义的常量只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误,建议使用const常量。2.4 运算符介绍按功能分:算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符、逗号运算符、sizeof运算符、其它运算符按需要操作数个数分:单目运算符(一个操作数)双目运算符(两个个操作数)三目运算符(三个操作数)一、算术运算符1.基本的算术运算符C+提供了5种基本的算术运算符:运算符名字实例+加12 + 4.9=16.9-减3.98 - 4 =-0.02*乘2 * 3.4=6.8/除9 / 2.0=4.5%取余13 % 3=1算术运算符的书写特点1、C+算术表达式中的乘号不能省略。例如:数学式b2-4ac 相应的C表达式应写成:b*b-4*a*c2、C+算术表达式中只能使用系统允许的标识符。例如:数学式r2 相应的C表达式应写成:3.14159*r*r3、C+算术表达式中的内容必须书写在同一行,不允许有分子分母形式,必要时要利用圆括号保证运算的顺序。例如:数学式 相应的C表达式应写成:(a+b)/(c+d) 4、C+算术表达式不允许使用方括号和花括号,只能使用圆括号来帮助限定运算顺序。2.自增、自减运算符自增运算符:自减运算符:这两个运算符都是单目运算符,且功能相近,都是将数值变量的值加1或减1,用户只能将这类操作符应用于变量而不能应用于常量。设valuel的初始值为5:运算符名 字实 例+ +自加(前缀)+valuel + 10 / 结果16,valuel变为6+ +自加(后缀)valuel+ + 10 /结果15,valuel变为6- -自减(前缀)-valuel + 10 /结果14,valuel变为4- -自减(后缀)valuel- + 10 /结果15,valuel变为41. 前缀式先将操作数增1(或减1),然后取操作数的新值参与表达式的运算。2. 后缀是先将操作数增1(或减1)之前的值参与表达式的运算,到表达式的值被引用之后再做加1(或减1)运算。二、关系运算符C+提供6种关系运算符,用于数值之间的比较,表达式的值或为1(表示true),或为0(表示false)。运算符名字实例= =等于5 = = 5 得出1! =不等于5 != 5 得出0小于5 5.5 得出1 =小于或等于5 大于5 5.5 得出0 =大于或等于6.3 = 5 得出1三、逻辑运算符C+提供了3种逻辑运算符。运算符名字实 例!逻辑非!(5 = = 5) / 得出 0&逻辑与5 6 & 6 6 / 得出 0|逻辑或5 6 | 6 5 / 得出 1注意1) 非0表示逻辑真,0表示逻辑假。2) 在逻辑运算中,并不是所有的逻辑运算符都被执行,只有在必须执行下一个运算符后才能得出表达式的值时,才执行该运算符。3) 逻辑运算符中除!为单目运算符外,其余的为双目运算符。位运算符运算符名字实 例取反011 =066&逐位与011 & 027 =001|逐位或011 | 027 =037逐位异或011 027 =036逐位左移011 逐位右移011 2 =002赋值运算符 = 简单的最常用的=运算符; 复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。赋值缩写求字节数运算符C+提供了一个有用的运算符sizeof,是一个单目运算符,用于计算表达式或数据类型的字节数,其运算结果与不同的编译器和机器相关。数据类型占用字节数char1char *4short2int 4(VC 6.0)2 (VC 1.5x)long4float4double8条件运算符条件运算符是C+中唯一的三目运算符,也称为三元运算符,它有三个操作数:操作数1 ? 操作数2 : 操作数3所以,条件运算符又可以称为?号运算符。说明:操作数1一般是条件表达式,若表达式成立,即为真,则整个表达式的值为操作数2,否则为操作数3。例如:cout (A=ch & ch=x 逻辑表达式。例如,!a & 8 | | 7 条件表达式。例如,a4 ? +a:-a 赋值表达式。例如,a=7 逗号表达式。例如,a+5,a=7,a+=42.7 类型转换类型转换的形式:(类型名)(表达式)类型运算符是单目运算,并位于其操作数的左边的圆括号里,称之显式类型转换,或强制类型转换。显式类型转换只是得到一个所需类型的中间变量,原来变量的类型并不发生变化。如果类型标识符仅为一个单词,显式类型转换的形式也可以写成:类型表示符(表达式)。在一般情况下,各种数据都按默认类型参与运算,当两个不同的数据类型(整型、字符型、实型)进行运算时,数据将进行自动类型转换,转换后再参与运算。自动类型转换也称为隐式转换。2.8 输入和输出一、输入输出流 C/C+本身并不带输入和输出(即I/O)功能,但提供I/O库。通过I/O库,可以完成输入和输出的操作。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政审批改革中的法律分析试题与答案
- 主管护师考试要点试题及答案
- 2025年主管护师考试建议试题及答案
- 行政管理在危机中的应对策略试题及答案
- 经济法概论考试经验与试题及答案
- 如何有效培训新入职药师试题及答案
- 护理职场人际关系处理试题及答案
- 中层管理者的角色认知与定位课件
- 文化自觉的试题及答案
- 前沿研究助力2025年执业药师试题及答案
- 软件转让合同协议书
- 专题08 自然灾害和地理信息技术- 2025年十年高考地理真题分项汇编(学生卷)
- 数学在生活中的奇遇
- 2024年金湖县事业单位招聘真题
- 2024年浙江省仙居县事业单位公开招聘教师岗笔试题带答案
- 五年级数学下试卷及答案
- 2025年高考政治答题模板:选必修123主观题答题语言总结
- 儿童性早熟课件
- 生活垃圾合同终止协议
- 山东能源电力集团招聘笔试题库2025
- 辽宁省沈阳市沈北新区2024-2025学年初三下学期质量调研考试(一模)语文试题含解析
评论
0/150
提交评论