C++初步知识数据类型与表达式.docx

上传人:b****8 文档编号:28150469 上传时间:2023-07-08 格式:DOCX 页数:19 大小:35.01KB
下载 相关 举报
C++初步知识数据类型与表达式.docx_第1页
第1页 / 共19页
C++初步知识数据类型与表达式.docx_第2页
第2页 / 共19页
C++初步知识数据类型与表达式.docx_第3页
第3页 / 共19页
C++初步知识数据类型与表达式.docx_第4页
第4页 / 共19页
C++初步知识数据类型与表达式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++初步知识数据类型与表达式.docx

《C++初步知识数据类型与表达式.docx》由会员分享,可在线阅读,更多相关《C++初步知识数据类型与表达式.docx(19页珍藏版)》请在冰豆网上搜索。

C++初步知识数据类型与表达式.docx

C++初步知识数据类型与表达式

第一章C++初步知识

1.1C++概述

1、C++是软件的专业开发工具。

VB等是非专业的软件开发工具

2、UNIX操作系统的绝大部分代码都是用C语言开发的,C语言也因此风靡世界。

3、C++保持与C兼容,另外,用C++编写的程序的可读性更好,代码结构更为合理,可直接在程序中映射问题空间的结构;

4、C++应用领域众多,它尤其适用于中等和大型的程序开发项目。

从开发时间、费用到形成的软件的可重用性、可扩充性、可维护性和可靠性等方面都显示出C++的优越性。

1.2最简单的C++程序

【例1.1】输出一行字符:

”ThisisaC++program.”

#include//用cout输出时需要用此头文件

usingnamespacestd;//使用命名空间std

intmain()

{cout<<"ThisisaC++program.\n";//用C++的方法输出一行

return0;

}

ThisisaC++program.

【例1.2】说明C++构造的示例程序。

/*输入两个整数,输出其和的C++示例程序*/

#include//系统头文件

voidmain()

{

inta,b;

cout<<“Entertwointeger:

”;

cin>>a>>b;

intresult;

result=a+b;

cout<<”Thesumof”<

<<“=”<

}

Entertwointeger:

1258

Thesumof12+58=70

1.注释

a.注释的内容不执行:

C++编译器跳过程序中的注释,不处理注释的内容。

b.注释的作用:

使用注释来描述程序的功能,完全是为了增强程序的可读性并提供理解程序的线索。

c.如何使用注释:

符号“//”告诉编译程序,本行“//”之后的所有内容都是注释;而符号“/*”和“*/”告诉编译器在“/*”和“*/之间的内空都是注释。

注释符号“//”适合短的只占一行的注释,而“/*...*/”适合于长的占用多行的注释。

d.空格:

程序文件的书写格式是自由的,空格起分隔单词的作用(多个空格符仅被当作一个空格符看待)。

在上面的程序中,通过恰当地使用空格和空行,也可增强程序的可读性。

2.包含文件及头文件

C++语言包含文件的格式有两种。

3.语句

语句:

在C++语言中,以分号结尾的句子称为语句。

例如:

inta,b;

一行多句:

对于短的语句,也可以一行写多个语句。

例如:

inta;floatfp;charsc;

4.标准输入与输出

标准输出:

cout一般是指输出设备显示器

标准输入:

cin一般是指键盘

cout和cin称作标准输出/输入流,在iostream.h中定义,它表示标准输出/输入设备,标准输出一般指的是屏幕,标准输入指的是键盘。

运算符<<把它的右边内容在屏幕上显示出来(变量与表达式的值或由双引号括起的字符串)。

运算符>>将键盘中输入的一个值,送到它右边的变量中保存起来。

上述程序运行之后,在屏幕上可以看到下面这条信息:

Entertwointeger:

光标在冒号后面闪烁,等待输入两个数。

例如输入第一个数5,按一下空格键,再输入第二个数25,然后按回车键,这时程序就读入所输入的数,5送给a,25送给b,然后开始执行以后的语句。

5.新行

在程序中,“\n”称为新行符。

C++系统还提供一个操纵算子endl,它的功能和新行符一样,也是开始一个新行。

6.主函数

这个程序中以main开始的部分定义了一个函数,该函数规定了该程序的功能。

main是函数名,在函数名之后紧一对圆括号。

所有的C++程序都必须有一个名为main的主函数。

这是程序员和C++系统之间的约定:

程序执行的开始点是main函数中的第一条语句。

一个C++函数中的任何成分被括在一对花括号(“{“和}”)中,在函数main的后面的右圆括号后紧跟一个左花括号,表示“这个函数从这里开始”,最后的右花括号表示“这个函数在这里结束”,花括号括起来的部分称作函数体,而函数名main和它后面的一对圆括号称为函数头。

函数体由一系列的C++语句组成,这些语句描述这个函数怎样实现它的功能。

【例1.3】求两个数中的大者

#include

usingnamespacestd;

intmain()

{intmax(intx,inty);//对max函数作声明

inta,b,c;

cin>>a>>b;

c=max(a,b);//调用max函数

cout<<"max="<

return0;

}

intmax(intx,inty)//定义max函数

{intz;

if(x>y)z=x;

elsez=y;

return(z);

}

【例1.4】包涵类的C++程序

#include

usingnamespacestd;

classStudent//声明一个类,类名为Student

{private:

//以下为类中的私有部分

intnum;//私有变量num

floatscore;//私有变量score

public:

//以下为类中公用部分

voidsetdata()//定义公用函数setdata

{cin>>num;//输入num的值

cin>>score;//输入score的值

}

voiddisplay()//定义公用函数display

{cout<<"num="<

cout<<"score="<

};

};//类的声明结束

Studentstud1,stud2;

//定义stud1和stud2为Student类的变量,称为对象

intmain()//主函数首部

{stud1.setdata();//调用对象stud1的setdata函数

stud2.setdata();//调用对象stud2的setdata函数

stud1.display();//调用对象stud1的display函数

stud2.display();//调用对象stud1的display函数

return0;

}

第二章数据类型和表达式

2.1C++的数据类型

C++的数据类型规定了它们的存储表示以及可以对它进行的操作,描述该类型的名字称为类型名。

数据类型分为:

基本数据类型和构造数据类型

指针类型引用类型空类型(void)。

基本数据类型是C++预定义的类型,是C++类系统的基本组成部件,基本数据类型是字符类型、整数类型(简称整型)、浮点类型、双精度类型和无值类型,描述相应类型的关键字是char,int,float,double和void.

构造数据类型是一种或几种基本类型按照按C++的语法要求建立的类型,包括枚举、数组、结构体、共用体和类等。

后续课程要详细介绍。

程序员利用关键字typedef,还可以从基本数据类型和构造数据类型中定义新的数据类型。

字符类型的变量用于保存ASCII字符,整型变量用于保存整数,浮点类型和双精度类型的变量用于保存带小数点的数,但双精度类型比浮点类型有更大的值域。

void类型在后面的章节讨论。

类型修饰符:

除void类型以外,其它类型前面可以加类型修饰符用于改变基本类型的含义,但它们仍然是基本数据类型。

C++的类型修饰符是:

signed(有符号的)、unsigned(无符号的)、short(短的)和long(长的)。

修饰符signed和unsigned可以用于字符类型和整型,short和long可以用于整型,long还可以用于双精度类型。

当用short、long、signed或unsigned修饰int时,关键字int可以省略。

字符变量不仅可以用于存储ASCII字符的代码值,也可以用于存储-128—127或者0—255之间的整数值。

表1.1列出了C++的基本数据型和类型修饰符的各种组合。

表1.1C++的基本数据型和类型修饰符的各种组合

类型名

位数

范围

char

8

-128---127

[signed]char

8

-128---127

unsignedchar

8

0---255

int

32

-2,147,483,648---2,147,483,647

Short[int]

16

-32768---32767

signedshortint

16

-32768---32767

unsignedshort[int]

16

0---65535

[signed]int

32

-2,147,483,648---2,147,483,647

unsigned[int]

32

0---4,294,967,295

longint

32

-2,147,483,648---2,147,483,647

signedlongint

32

-2,147,483,648---2,147,483,647

Unsignedlongint

32

0---4,294,967,295

float

32

3.4E-38---3.4E+38

double

64

1.7E-308---1.7E+308

longdouble

64

1.7E-308---1.7E+308

void

0

无值

用户可以通过声明数组、指针、结构或联合,以便从基本类型派生出复合类型的数据。

#include

#include

voidmain()

{

unsignedinta;

a=pow(2,32)-1;

cout<

signedintb;

b=(pow(2,32)-1)/2;

cout<

b=85;

cout<

}

4294967295ffffffff

21474836477fffffff

8555

2.2常量

2.2.1什么是常量

数值型常量、字符型常量。

2.2.2数值常量:

整常量

1.整型常量的类型

从字面上和在表达式中所参加的运算中区分:

55,32769

整常量可以用十进制、八进制和十六进制来表示。

十进制整常量:

由0—9的数字组成,但第一位不能以0开始,也没有小数部分。

输出时用”dec”

八进制整常量:

以0开始,由0—7的数字组成。

输出时用“oct”

十六进制整常量:

以0X(x不分大小写)开始,由0—9的数字及A—F的字母(大小写均可)组成。

输出时用“hex”

负号:

在它们的前面都可用负号表示负数,例如:

0545-05450X5AF-0xabc

2.浮点常量

浮点常量:

就是实数。

在C++中,浮点数可以用浮点表示,也允许科学表示法。

例如:

-52.50.515E+265.5E-135.8E5-6.8E2

浮点常量的数据类型:

没有标记为double类型,但可以在其后加后缀F(f)使其为float类型,或加后缀L(l)变为longdouble类型。

例如:

-53.8F53.8f35.6E5F0.5L35.6E+51

浮点数在内存中存储形式是指数形式.

2.2.3字符常量

1.普通的字符常量

括在单引号中的一个字符称作字符常量,例如:

’A’,’$’,‘‘(空格)。

字符常量的类型是char类型。

2.转义字符常量

在ASCII字符集中,有些代码表示控制命令,是不可显示的,有些是无法从键盘上直接输入的,由C++提供的一种称作转义序列的方法来表示字符或控制代码。

下面是C++预定义的转义序列,它们都表示一个字符。

\a响铃ASCII7

\n新行ASCII10

\t水平制表符(tab键)ASCII9

\v垂直制表符ASCII11

\b回退符(backspace键)ASCII8

\r回车符ASCII13

\f换页ASCII12

\\反斜杠ASCII92

\’单引号ASCII39

\”双引号ASCII34

可以用十六制或八进制值来表示ASCII码字符集中的任何一个字符或控制代码,这种转义序列以反斜杠开始:

\nnn八进制值形式

\xnnn十六进制值形式

其中nnn表示三位十六进制或八进制数。

八进制转义序列在反斜杠后面紧跟八进制数组成的序列即可,而十六进制转义序列需要在反斜杠后面要接一个小写字母x,以表示后面是由十六进制数组成的序列,例如,字符a的十六进制编码是61,用转义序列表示字符a可以写成’\x61。

cout<<"\x61"<

cout<<"\x7"<

#include

voidmain()

{

chara;

a='a';

cout<

}

9761

3.字符数据在内存中存储形式及使用方法

例2.1将字符赋给整型变量

#include

usingnamespacestd;

intmain()

{

inti,j;i='A';j='B';

cout<

return0;

}

6566

例2.2字符数据与整数进行算数运算

#include

usingnamespacestd;

intmain()

{

charc1,c2;c1='a';c2='b';

c1=c1-32;c2=c2-32;

cout<

return0;

}

AB

4.字符串

字符串常量(简称字符串)是用一对双撇号括号起来的字符序列,例如:

“Thisisastring\n”

“abc”

编译系统会在字符串最后自动加一个’\0’作为字符串结束标志。

由于空格也是一个字符,所以字符串可以包含空格,字符串中也可以包含转义序列。

字符串是一种特殊的常量,它的类型不是基本数据类型,稍后再解释字符串的类型。

当两个字符串仅用空白相隔时,它表示一个串,例如:

“Thisis”“astring”

#include

voidmain()

{

cout<<"Thisis""astring"<

cout<<"\nNewline!

";

}

Thisisastring

Newline!

2.2.4符号常量

#include

usingnamespacestd;

#definePRICE30

intmain()

{

intnum=10,total;

total=num*PRICE;

cout<<"total="<

return0;

}

total=300

2.3变量

2.3.1什么是变量

变量:

2.3.2变量名规则

标识符是程序员定义的名字,用作变量名、函数名和类型名等。

标识符的组成元素和组成规则:

由大小写字母、下划线和0-9的数字组成,组成标识符的规则是以字母或下划线开头,其后可跟数字、下划线、零个或多个字母。

例如:

12c是不合法的标识符,而D$7_I和工资呢?

标识符的长度:

长度可以是任意的,不同的C++编译器能识别的最大长度是有限的,编译器忽略掉多余的字符,而不认为是个错误。

不允许同名:

但如两个标识符的有效字符相同,则出现重定义错误。

区分大小写:

在C++中,大小写字母是有区别的。

例如:

Dd是两个不同的标识符

2.3.3定义变量

变量类型变量名表列

2.3.4为变量赋初值

2.3.5常变量

constinta=3;

2.4C++的运算符

运算:

运算是对数据进行加工的过程。

运算符:

记述各种不同运算的符号称为运算符。

操作数:

参与运算的数据称为操作数。

表1.2给出C++的全部运算符及优先级。

表1.2C++的全部运算符及优先级。

优先级

运算符

结合方向

1

()[]->· :

:

*&(引用) 

从左至右

2

~++---(负号)sizeof

*(递引用)&(取地址)newdelete

从右至左

3

*/%

从左至右

4

+-(减法)

从左至右

5

>><<

从左至右

6

<<=>>=

从左至右

7

==!

=

从左至右

8

&

从左至右

9

^

从左至右

10

|

从左至右

11

&&

从左至右

12

||

从左至右

13

?

:

从右至左

14

=+=-=*=/=%=>>=<<=&=^=|=

从右至左

15

从左至右

运算符的分类:

按运算符和操作数的关系,运算符分为一元、二元和三元运算符,分别对一个、二个和三个操作数进行运算。

按运算符和操作数的运算性质,又可分为算术运算符、逻辑运算符、关系运算符、位运算符和其它运算符。

2.5算术运算符与算术表达式

2.5.1基本的算术运算符

C++提供的一元算术运算符是一元减,其作用是取操作数的负值,例如;-a,其运算结果是取a的负值。

C++提供的二元算术运算符如下:

+-*/%

加减乘除取模

这些运算符的作用和通常代数中的概念是一致的,但有如下说明:

(1)%是取模运算符,a%b的结果是a被b除的余数。

例如,7%5结果是2。

%运算符只能用于整型操作数,其它运算符可以用于整型或浮点类型的操作数。

(2)当运算符/用于整型操作数时,结果类型是整型,其值为商,例如7/5的结果是1,5/7的结果是0,小数部分被舍弃了。

-5/3呢?

2.5.2算术表达式和运算符的优先级和结合性

算术表达式:

例如:

2555+95x+ya*(b+c)a*b+cx+25

都是表达式的例子,其中表达式25和55+95的操作数都是常量,称为常量表达式。

表达式的计算顺序:

在对一个表达式求值时,先计算括号内的表达式,再计算括号外的表达式,优先级高的运算符先运算,优先级低的运算符后运算。

当一个表达式中出现各种运算符时,运算符的优先级和结合性决定一个表达式的求值顺序。

二元算术运算符自左至右进行运算。

又称”左结合性”,

#include

voidmain()

{

inta=5,b=7;

cout<

cout<

cout<

}

2

1

0

溢出:

与算术运算有关的一个问题是表达式计算中的溢出外理问题。

在C++中,被零除和浮点溢出被个为一个错误导致终止程序的运行。

但整数溢出却不认为是一个错误,原因在于有时需要得用整数溢出进行一些较低级的程序设计。

可以通过将它们都设为long类型变量来解决这个问题。

#include

voidmain()

{

intc=0;

cout<<8.8/c<

shortd=32767;

d=d+10;

cout<

}

1.#INF

-32759

2.5.3表达式中各类数值型数据间的混合运算

10+’a’+1.5-8765.1234*’b’

inti;floatf;doubled;longe;

10+’a’+i*f-d/e

2.5.4自增和自减运算符

C++的增1和减1运算符(++和――)也含有赋值操作,这两个运算将所施予的操作数(必须是一个左值)加1或减1。

例如:

i++++ii----i

例如:

i=1;j=i++;

使j的值为1,i的值为2,而语句i=1;j=++i;

使i和j的值都为2。

对于减1运算符也是一样的。

前缀是先赋值后参加计算,后缀是先参加计算后赋值。

注意:

增1和减1运算符只能用于左值(例如变量),下面这个表达式是非法的:

++(i+j);

2.5.5强制类型转换运算符

(类型名)(表达式)

类型名(表达式)

2.6赋值运算符与赋值表达式

2.6.1赋值运算符

2.6.2赋值过程中的类型转换

赋值类型转换:

例如:

doublex;inty;x=y;y+=0.5;

对于第一个语句,y的值首先转换为double类型的值,然后置给x,表达式x=y的类型为double类型。

对于第二个表达式,y的值首先转换成double类型的值。

然后与0.5相加,该运算结果为double类型的值,这个值被转换为int类型的值以后置给y。

例2.5将有符号数据传给无符号数据

#include

usingnamespacestd;

intmain()

{

unsignedshorta;

shortintb=-1;

a=b;

cout<<"a="<

return0;

}

a=65535

2.6.3复合的赋值运算符

C++还提供了下述几个赋值运算符:

+=-=*=/=%=

<<=>>=&=^=|=

这些运算符都是二元运算符,并且是“自右至左”,它们的优先级和简单赋值的优先级一样。

假设op表示这些运算符中符号“=”左边的运算符,则表达式

左值op=表达式可以理解为左值=左值op(表达式)

2.6.4赋值表达式

赋值运算:

赋值运算用于改变一个存储区域的内容。

C++提供一个简单的赋值运算符=,它将右操作数的值置给左操作数,左操作数必须是一个左值。

在C++中,赋值是一个表达式,表达式的值是左操作数赋值后的值。

因此,在C++中允许下面赋值:

i=j=25;

#include

voidmain()

{

inta,b;

cout<<(a=18)<

cout<

b=a=23;

cout<

}

18

18

2323

2.7逗号运算符与逗号表达式

逗号表达式:

用于隔开一个表达式序列的逗号运算符仍是一个表达式。

逗号表达式的运算顺序和运算结果:

计算顺序从左到右依次进行,只保留最后一个表达式的值,其它表达式的值都丢弃掉,这最后一个表达式的值作为逗号表达式的值,而数据类型是这个值的类型,

逗号表达式的优先级最低,引入逗号表达式的是为了简化程序的书写。

在C++语言中常用逗号表达式

展开阅读全文
相关搜索
资源标签

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1