c第一二章.docx

上传人:b****5 文档编号:11963008 上传时间:2023-04-16 格式:DOCX 页数:16 大小:26.71KB
下载 相关 举报
c第一二章.docx_第1页
第1页 / 共16页
c第一二章.docx_第2页
第2页 / 共16页
c第一二章.docx_第3页
第3页 / 共16页
c第一二章.docx_第4页
第4页 / 共16页
c第一二章.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c第一二章.docx

《c第一二章.docx》由会员分享,可在线阅读,更多相关《c第一二章.docx(16页珍藏版)》请在冰豆网上搜索。

c第一二章.docx

c第一二章

二进制B、八进制O十进制D、F十六进制H

2.1词法符号

一,字符集,C++的字符集(ACSII码字符集)包括26个小写字母,26个大写字母,10个数字,其他符号。

C++的字符集所构成的此法单位有5中:

标识符,关键字,标点符号(分隔符),常亮和运算符。

二,标识符,用来标识变量、符号常量、函数、和数据类型的有效字符序列称为标识符!

简单地说,标识符就是一个名字,用以区分不同的变量、符号常量、数组和函数等。

标识符使用规则:

1,标识符只能有字母、数字和下划线组成

2,标识符的第一个字符必须是字幕或下划线,不能用数字开头。

3,其中字母是区分大小写的。

大写意消协完全是两个不同的标识符。

4,标识符的长度理论上可以任意长。

但不同编译器会有限制为保证可读性,可使用31个

字符或更短的标识符。

5,标识符不能分行书写。

6,为提纲程序的可读性,在命名变量名时,最好做到简洁且“见名知意”

as(关键字)doinlineshorttypeidaudodoubleint

signed

typename

booldynamic_caselong

sizeofunionbreak

else

mutablestatic

unsigned

caseenum

namespaceedefusing

catch

explicitnew

struct

virtualchar

externoperator

switch

viodclassfalse

privatetemplatevolatileconst

float

const.

_casefor

public

thow

whilecontinuefriendregister

truedefaultgototrydeleteifreturntypedef

reinterpret_castwchar_t(还不太清楚是什么)

基本数据类型

据类型

本类型

整型(int)

字符型(char)

实型(float、

double)

单精度型

双精度型

长双精度型:

布尔型

枚举型

造类型

数组

指针

共用体

结构体(struct)

类(class)

空类型

 

整型

整型(int,+-2八31)

短整型(+-shortint,2A15)

长整型(+-longint,2八31)

无符号整型(unsignedint,0-2八31)

无符号短整型(unsignedshortint,0-2八16)

无符号长整型(unsignedlongint,0-2八32)

字符型(char,+-2A7)

单精度浮点型(float,+-3.4*10八38)

双精度浮点型(double,+-1.7*10八308)

长双精度(longdouble,+-1.7*10八308)

布尔型(bool,true或false)

数据类型的作用:

1,他指出了该类型数据在内存中如何储存,即占用多大的存储空间,同时也确定了该类型数据的取值范围。

2,他指出了该类型的数据所能进行的运算。

一,字符型用来处理字符数据存储的是该字符的ASCII码,占用1一个字节。

二,布尔型用于描述逻辑量,其取值只有true(逻辑真)和false(逻辑假)两个值

常量与变量

数据是以常量或变量的形式来描述的。

常量:

可以直接写在程序中的数据,在程序运行过程中其值始终保持不变。

有两种形式:

一种是以字面值形式直接出现在程序中;另一种是用标识符的形式表示,称为符号常量。

常量包括整型常量、实型常量、字符型常量和字符串常量。

整型常量:

不含小数点的数。

可用十进制、八进制和十六进制。

1,十进制整型常量:

与日常生活中的书写方式相同,以负号、0-9数字组成。

2,八进制整型常量以数字0开头有数字0-7组成。

3,十六进制整型常量以0X开头,有数字0-9、a-f(或A-F)组成

4,长整型常量可在末尾加上L(或I)

以上介绍的整型常量的数据类型默认为基本整形into

实型常量

实型常量又称浮点型常量,其有两种表示形式,即:

小数形式和指数形式。

小数形式:

由负号、数字和小数点组成其中小数点必不可少

指数形式:

也称科学表示法,他是有尾数部分、阶码标志(E或e,表示*10)和指数部分组成的实型常量。

尾数和指数部分都可以带有符号•(需要注意的是,E或e后必须是整数)。

字符常量

C++中有两种字符常量,即一般字符常量和转义字符常量。

一般字符常量:

用单引号引起来的单个字符,如‘a'在其内保存的是他的ASCII码值占据一个

字母的ASC吗值是连竦的整救*AW并缺.然后是伉忆…,蚯.丸雳字旱也“此”小骂宇

》的ASCII码值勺叭Id丸写宇母72疋的AM$1码值为砧3*小写字耳力吐「底二七子弋

母箱ASCII科值岡_伞字母曲丸屮坊常码值孙菱值适32.冲晳-理的值与廿一8妁僅翔

,数字芋苻疔空的ASGI瑪僮龙连皴肿整敖*为轴£匚整數0命救字字转爭展云的是腐牛程*芍蚁揺弁是爭甘常童1占*个字节*其asciis值为翻:

而o的崑整型常量.占4牛字冷字节。

_一:

转义字符

除了使用字符常量外,C++中还经常使用转义字符表示一些特殊字符。

特征:

以一个反斜杠开头的特定字符序列字符序列,用于表示一些不可显示或无法从键盘输入的控制字符如下表:

字符形式

ACSII码值

功能

\0

0x00

NULL

\a

0x07

响铃

\b

0x08

退格(backspace键)

\t

0x09

水平制表(Tab键)

\n

0x0a

回撤换行

\v

0x0b

垂直制表

\f

0x0c

走纸换页

\r

0x0d

回车(不换行)

\\

0x5c

反斜杠

0x27

单引号

0x22

双引号

\?

0x3f

问好

\ddd

0ddd

1-3位八进制数所代表的字符

\xhh

0xhh

1-2位十六进制数所代表的字符

表中最后两行是使用转义字符的形式表示任意一个字符,此时反斜杠后面是八进制或十六进制数值,该值为所要表示的字符的ACSII码值。

由于字符型常量占用1个字节,所以转义字符使用八进制数表示时,最多是三位数,范围是\000-\377;使用十六进制数表示时必须使用x或X开头表示范围是\x00-\xff。

字符串常量

用一对双引号引起来的字符称为字符串常量。

字符串常量与字符常量不同,字符串常量在内存中是按顺序逐个存储传中每个字符的ASCII码,并在最后自动加上一个’0'字符,该字符称为字符串

的结束标志,其ASCII码值为0.

字符常量是用来组成字符串常量的基本单位,几个字符常量,可以组成一个字符串常量。

但是字符串常量比组成原有字符常量多一个单位,即’0'值为零。

符号常量:

在程序中可以用一个符号来代替常量。

定义符号常量的形式为:

const数据类型符号常量=常量表达式。

Const是定义符号常量的关键字,数据类型用来指定符号敞亮的类型,符号常量名为标识符,其命题要求符合标识符的命名规则。

常量表达式的值即符号常量的值。

符号常量的优点:

(1)增强了长须的可读性,便于理解常亮的含义,

(2)增强程序的可维护性。

首先时刻避免重新输入,其次当需要对符号常量进行修改时,只需要在定义出进行修改即可,从而避

免了在程序中多处查找修改的麻烦,同时也避免了因一楼修改而导致的程序运行错误。

注意:

(1)在程序中不允许修改符号常量的值,因此在符号常量定义是就必须初始化,即在定义时为其赋值。

(2)在符号常量的定义中复制号右侧的“常量表达式”中不能含有变量或者函数。

变量:

与常亮不同,变量的值在程序的运行过程中是可以变化的。

在程序中,变量实际代表的是计算机内存中的一块存储空间,存储空间的名称就是变量名,其中存储的内容就是变量的值,存储空间的具体大小则是由变量的类型决定的。

在程序适用变量时,系统会通过变量名找到对应的存储空间,从而访问其中的数据。

变量的值是可以变化的,当把一个新的值存放到变量中时,变量原有的值就会被覆盖点儿不复存在,基变量在某一时刻只能保留一个值。

C+-重在实用变量之前,必须先对变量进行定义,及定义其类型和名字,对于变量的定义,在程序编译时编译器会根据变量的数据类型为变量分配一块存储空间,用于存储该变量的值。

其一般形式为:

数据类型变量名表。

(1)变量名是用户定义的边师傅,因此为变量命名是要符合标识符的命名规则

(2)标识符中可以包含很多变量,彼此之间要用逗号隔开。

(3)数据类型可为基本数据类型,也可以是构造类型常用的基本数据类型为char(字符型)、

int(正数)、long(长整型)、float(浮点型)和double(双精度型)

选择变量类型时应注意:

数据的类型、数据的取值范围、数据可以参与的运算。

变量的定义可以出现在程序中的任何位置,只要在使用该变量之前进行定义即可,而且,同一变量只能定义一次,不能重复定义。

变量的赋值与初始化:

变量定义后,就有了对应的存储空间,但此时该储存空间内的值是一个随机值,也就是说此时变量的值是不确定的或不是程序所需要的,。

因此在使用变量前,用纤维变量赋值。

为变量赋值,就是将一个新值或确定的值存入变量对应的存储空间,此时原来的值就会被覆盖。

赋值运算符与赋值表达式

赋值运算符(=)用于为变量赋值,赋值运算符与其两侧的操作数组成的表达式称为赋值表达式称为赋值表达式。

赋值表达式形式:

变量名=表达式。

赋值表达式的计算过程时先计算赋值运算符号右边表达式的值,然后将其赋值给左边的变量。

赋值表达式本身也有值,其值及为赋值运算符左边的变量的值,其类型为左边变量的类型。

注意:

赋值运算符左边必须是变量名,而不能是常量或表达式等。

赋值运算有方向性,即只能将赋值运算符右边的数据富裕赋值运算符左边的变量。

若赋值运算符右边的表达式的值的类型与赋值运算符左边的变量的类型不一致,则要将表达式的值的类型转换为变量的类型,然后再进行赋值。

注意赋值运算符与数学上的等于号的含义完全不同。

在一个表达式中可以有多个赋值运算符,此时的运算顺序是从又想做的方向进行的。

变量的初始化:

在定义变量的同时为变量赋初值,成为变量的初始化。

在使用变量的值进行计算时,必须保证变量有确定的值。

对于已经定义而没有被赋值的变量,

其值为不确定的随机值,此时读其值进行计算会导致错误的程序运算结果,因此在定义变量后应立即为变量赋值或在定义是对变量进行初始化。

运算符与表达式:

运算符在使用时,应注意:

(1)运算的目数。

每个运算符都有运算目数,即参与运算的操作数个数,即根据操作数的个数

可将运算符分为单目、双目和三目运算符。

条件运算符是唯一的一个三目运算符。

(2)运算符的优先级。

每种运算符都有其优先级别,来决定运算的顺序。

逗号运算符的优先级别最低,其次是赋值运算符。

(3)运算符的结合性。

结核性是指当相邻的两个运算符的优先级别相同时的运算顺序是从左往

右算还是从右往左算。

如果一个运算符对其操作数按从左往右的方向进行运算,称此运算

是左结合。

反之则为又结合。

优先级别

运算符

含义

目数

结合性

1

••

••

作用域运算符

左结合

()

小括号

[]

下标运算符

->

成员访问运算符

-

运算符在使用时

2

!

逻辑非运算符

1

右结合

按位取反运算符

++

自增运算符

--

自减运算符

-

负号运算符

(类型)

类型转换运算符

*

指针运算符

&

取地址运算符

Sizeof

数据类型长度运算

New

分配存储单元运算

Delete

释放存储单兀运算

3

*

乘法运算符

2

左结合

/

除法运算符

%

求余运算符

4

+

加法运算符

-

减法运算符

5

<<

左移运算符

>>

右移运算符

6

<、<=、>、>=

小于、小于等于、大于、大于

等于

7

!

=

不等于运算符

==

等于运算符

8

&

按位与运算符

9

A

按位异或运算符

10

I

按位或运算符

11

&&

逻辑与运算符

12

II

逻辑或运算符

13

:

••

条件运算符

3

右结合

14

=、+=、-=、*=、/=、%=<<=、>>=、&=A=、|=

赋值运算符

2

15

逗号运算符

左结合

笼统的讲优先级别从高到低依次是:

单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符和逗号运算符。

单算关逻条赋逗(蛋蒜罐锣豆腐条)。

表达式:

表达式是由操作数、运算符、和小括号按一定的规则组成的式子,其中构成表达式的操作数可以是常量、变量、函数等,小括号则可以改变运算顺序。

根据运算符的不同,表达式又分为算数表达式、关系表达式、逻辑表达式。

运算顺序由运算符的优先级和结合性决定。

表达式的书写原则:

(1)乘号不能省略。

(2)小括号可以改变运算顺序,但是小括号必须成对出现而且只能使用小括号。

(3)表达式中没有上标或下标,也没有分式,应从左到右在同一行上并排书写。

(4)数学表达式中的某些符号不能在表达式中使用,要使用其他符号或数值代

替。

算术运算符:

算术运算符

操作

目数

结合性

-

负号

1

右结合

*

/

%

乘号

2

左结合

除号

2

取余

2

+

2

2

需要注意的是:

(1)9为取余运算符,它要求两边的操作数都必须是整数,如果对浮点数操作,则会引起语法错误。

(2)进行双目运算时,运算结果的类型与操作数的类型相同。

复合的赋值运算符:

由算术运算符与赋值运算符组合而成。

算术运算符和赋值号之间不能存在空格。

X=5

复合赋值运算符

实例

等价于

X的值

+=

x+=2

X=x+2

7

-=

x-=2

X=x-2

3

*=

x*=2

X=x*2

10

/=

x/=2

X=x/2

2

%=

x%=2

X=x%2

1

自增自减运算符:

自增自减运算符为++和--,其功能是将操作数的值增1或减1后再赋值给操作数本身。

i++:

后增,i++表达式的值为i的值,然后i进行自增,即先取值后自增。

++i:

先增,i县进行自增,++i表达式的值为自增后的i的值,即先自增后取值。

i--:

后减,i—表达式的值为自减,即先取值后自减。

--i:

先减,i先进行自减,--i表达式的值为为自减后的i的值,即先自减后取值。

i=3

自增自减运算

Y的值

自增自减后的i值

说明

y=i++

3

4

Y=4,i=i+1

y=++i

4

4

i=i+1,y=i

y=i--

3

2

Y=2,i=i-1

y=--i

2

2

i=i-1,y=i

逗号运算符:

逗号也是一个运算符,在所有运算符中逗号运算符的优先级别最低。

都好表达式形式:

表达式1,表达式2,表达式3表达式n。

逗号表达式的值为最后一个表达式的值,即表达式n的值。

在所有运算符中,逗号运算符的优先级别最低,因此总是在最后进行计算。

如下:

x=y=(z=3,2*3)。

x=y=6,z=3表达式的值为6;x=y=z=3,2*3,x=y=z=3,表达式的值为6;x=(y=z=3,2*3)x=6,y=z=3,表达式的值为6。

注意,并非所有的逗号都构成逗号表达式,有些情况下逗号只作为分隔符。

常用的数学函数:

C++中预定义了大量的标准函数功用户编辑时使用,这些函数按功能可分为数学函数、

字符串函数、输入输出函数、时间函数、图形函数等。

在使用内部函数时,应把相关的头文件通过

#include预处理命令包含到程序中。

在标准函数库函数cmath中提供了丰富的数学汉书,如三角函数、平方根、绝对值函数等。

如果程序中要使用表中的数学函数,只要在程序的最前面加入文件包含命令即可:

#include

常用函数表:

函数名

含义

范例

计算结果

Abs(x)

求x(整数)的绝对值

Abs(-4)

4

Fabs(x)

求x(实数)的绝对值

Fabs(-2.6)

2.6

Sprt(x)

计算x的平方根(x>=0)

Sprt(16)

4

Exp(x)

计算eAx

Exp(3)

eA3

Pow(x,y)

计算xAy

Pow(2,3)

8

Sin(x)

计算sinx,x为弧度制

Sin(0)

0

cos(x)

计算cosx,x为弧度制

cos(0)

1

tan(x)

计算tanx,x为弧度制

tan(O)

0

类型转换:

在C++中,整型、单精度、双精度及字符型数据可以进行混合运算,即允许双目运算符两边的操作数的类型不同。

当表达式中不同类型的数据进行计算时,会发生数据类型的转换,即先将不同类型的数据转换成相同类型,再进行计算。

这种数据类型的转换是由系统自动转换完成的,在转换时按照以下规则进行转换:

(1)操作数为字符型祸端整型时,系统自动将其转换为整形。

(2)操作数为单精度float型时,系统自动将其转换为双精度double型。

(3)当量操作数类型不同时,将“所占存储空间小”的操作数的类型向“所占存储空间大”的操作

数的类型转换,转换为同一种数据类型后再进行计算,转换方向为char,

short-〉int->unsigned->long(float)->double->longdouble,箭头方向表示系统自动转换

的方向,不能反方向进行转换。

强制类型转换:

即在表达式中可以根据需要把任意一个数据的类型转换为另一个数据类型。

强制类型转换是靠强

制类型转换运算符实现的,其一般形式为:

数据类型(操作数)或(数据类型)操作数

其中操作数可以是常量、变量或表达式。

此时,是把数据类型强行转换为前面指定的数据类型。

在进行强制转换时,位数据类型加上小括号或是为表达式叫上小括号都是正确的,如double(5/2)

或(double)(5/2)得到的结果都是2.0,都是先计算5/2得到的结果整数2(注意这里是整除,不会得到2.5),然后将2转换为double型的2.0.但是double(5/2)与(double)5/2的结果却完全不一样。

(double)5/2的值是2.5,这是因为类型转换运算符的优先级别高于除法运算符/,因此首先将5

转换为5.0,而后在计算5.0/2。

再有表达式(int)x%(int)y是先将x、y强制转换为int类型后在进行取余运算。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

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

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