软考程序员章节常考知识点复习笔记第八章汇总.docx

上传人:b****5 文档编号:24689608 上传时间:2023-05-31 格式:DOCX 页数:20 大小:18.85KB
下载 相关 举报
软考程序员章节常考知识点复习笔记第八章汇总.docx_第1页
第1页 / 共20页
软考程序员章节常考知识点复习笔记第八章汇总.docx_第2页
第2页 / 共20页
软考程序员章节常考知识点复习笔记第八章汇总.docx_第3页
第3页 / 共20页
软考程序员章节常考知识点复习笔记第八章汇总.docx_第4页
第4页 / 共20页
软考程序员章节常考知识点复习笔记第八章汇总.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

软考程序员章节常考知识点复习笔记第八章汇总.docx

《软考程序员章节常考知识点复习笔记第八章汇总.docx》由会员分享,可在线阅读,更多相关《软考程序员章节常考知识点复习笔记第八章汇总.docx(20页珍藏版)》请在冰豆网上搜索。

软考程序员章节常考知识点复习笔记第八章汇总.docx

软考程序员章节常考知识点复习笔记第八章汇总

2013年软考程序员章节常考知识点复习笔记第八章

    

 

  查看汇总>>>2013年软考程序员章节常考知识点复习笔记汇总

 

  12、C++操作符优先级:

 

  记忆方法:

 

  去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值;双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。

 

  --摘自《C语言程序设计实用问答》

 

  问题:

如何记住运算符的15种优先级和结合性?

 

  解答:

C语言中运算符种类比较繁多,优先级有15种,结合性有两种。

 

  如何记忆两种结合性和15种优先级?

下面讲述一种记忆方法。

 

  结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。

 

  优先级有15种,记忆方法如下:

 

  记住一个最高的:

构造类型的元素或成员以及小括号。

 

  记住一个最低的:

逗号运算符。

 

  剩余的是一、二、三、赋值——意思是单目、双目、三目和赋值运算符。

 

  在诸多运算符中,又分为:

算术、关系、逻辑。

 

  两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。

 

  再细分如下:

 

  算术运算符*,/,%高于+,-。

 

  关系运算符中:

>,>=,<和<=高于==,!

=。

 

  逻辑运算符中,除了逻辑求反(!

)是单目外,逻辑与(&&)高于逻辑或(||)。

 

  逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。

 

    

    

    

    

Precedence

    

    

    

Operator

    

    

    

Description

    

    

    

Example

    

    

    

Overloadable

    

    

    

Associativity

    

    

    

    

    

1

    

    

    

    

    

    

Scoperesolutionoperator

    

    

    

Class:

age=2;

    

    

    

no

    

    

    

lefttoright

    

    

    

    

    

2

    

    

    

()

    

    

    

Functioncall

    

    

    

printf(“Helloworld\n”);

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

()

    

    

    

Memberinitalization

    

    

    

c_tor(intx,inty):

_x(x),_y(y*10){}

    

    

    

yes

    

    

    

    

    

[]

    

    

    

Arrayaccess

    

    

    

array[4]=2;

    

    

    

yes

    

    

    

    

    

->

    

    

    

Memberaccessfromapointer

    

    

    

ptr->age=34;

    

    

    

yes

    

    

    

    

    

.

    

    

    

Memberaccessfromanobject

    

    

    

obj.age=34;

    

    

    

no

    

    

    

    

    

++

    

    

    

Post-increment

    

    

    

for(inti=0;i<10;i++)cout<

    

    

    

yes

    

    

    

    

    

--

    

    

    

Post-decrement

    

    

    

0;i--)cout<

    

    

    

yes

    

    

    

    

    

dynamic_cast

    

    

    

Runtime-checkedtypeconversion

    

    

    

(x);

    

    

    

no

    

    

    

    

    

static_cast

    

    

    

Uncheckedtypeconversion

    

    

    

(x);

    

    

    

no

    

    

    

    

    

reinterpret_cast

    

    

    

Reinterpretingtypeconversion

    

    

    

intconst*p=reinterpret_cast(0x1234);

    

    

    

no

    

    

    

    

    

const_cast

    

    

    

Castaway/Addconstness

    

    

    

int*q=const_cast(p);

    

    

    

no

    

    

    

    

    

typeid

    

    

    

Gettypeinformation

    

    

    

std:

type_infoconst&t=typeid(x);

    

    

    

no

    

    

    

    

    

3

    

    

    

    

    

    

Logicalnegation

    

    

    

if(!

done)...

    

    

    

yes

    

    

    

righttoleft

    

    

    

    

    

not

    

    

    

Alternatespellingfor!

    

    

    

    

    

    

    

    

Bitwisecomplement

    

    

    

flags=~flags;

    

    

    

yes

    

    

    

    

    

compl

    

    

    

Alternatespellingfor~

    

    

    

    

    

++

    

    

    

Pre-increment

    

    

    

for(i=0;i<10;++i)cout<

    

    

    

yes

    

    

    

    

    

--

    

    

    

Pre-decrement

    

    

    

0;--i)cout<

    

    

    

yes

    

    

    

    

    

-

    

    

    

Unaryminus

    

    

    

inti=-1;

    

    

    

yes

    

    

    

    

    

    

    

    

Unaryplus

    

    

    

inti=+1;

    

    

    

yes

    

    

    

    

    

*

    

    

    

Dereference

    

    

    

intdata=*intPtr;

    

    

    

yes

    

    

    

    

    

&

    

    

    

Addressof

    

    

    

int*intPtr=&data;

    

    

    

yes

    

    

    

    

    

sizeof

    

    

    

Size(ofthetype)oftheoperandinbytes

    

    

    

size_ts=sizeof(int);

    

    

    

no

    

    

    

    

    

new

    

    

    

Dynamicmemoryallocation

    

    

    

long*pVar=newlong;

    

    

    

yes

    

    

    

    

    

new[]

    

    

    

Dynamicmemoryallocationofarray

    

    

    

long*array=newlong[20];

    

    

    

yes

    

    

    

    

    

delete

    

    

    

Deallocatingthememory

    

    

    

deletepVar;

    

    

    

yes

    

    

    

    

    

delete[]

    

    

    

Deallocatingthememoryofarray

    

    

    

delete[]array;

    

    

    

yes

    

    

    

    

    

(type)

    

    

    

Casttoagiventype

    

    

    

inti=(int)floatNum;

    

    

    

yes

    

    

    

    

    

4

    

    

    

->*

    

    

    

Memberpointerselector

    

    

    

ptr->*var=24;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

.*

    

    

    

Memberobjectselector

    

    

    

obj.*var=24;

    

    

    

no

    

    

    

    

    

5

    

    

    

*

    

    

    

Multiplication

    

    

    

inti=2*4;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

/

    

    

    

Division

    

    

    

floatf=10.0/3.0;

    

    

    

yes

    

    

    

    

    

%

    

    

    

Modulus

    

    

    

intrem=4%3;

    

    

    

yes

    

    

    

    

    

6

    

    

    

    

    

    

Addition

    

    

    

inti=2+3;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

-

    

    

    

Subtraction

    

    

    

inti=5-1;

    

    

    

yes

    

    

    

    

    

7

    

    

    

<<

    

    

    

Bitwiseshiftleft

    

    

    

intflags=33<<1;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

>>

    

    

    

Bitwiseshiftright

    

    

    

>1;

    

    

    

yes

    

    

    

    

    

8

    

    

    

<

    

    

    

Comparisonless-than

    

    

    

if(i<42)...

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

<=

    

    

    

Comparisonless-than-or-equal-to

    

    

    

if(i<=42)...

    

    

    

yes

    

    

    

    

    

>

    

    

    

Comparisongreater-than

    

    

    

if(i>42)...

    

    

    

yes

    

    

    

    

    

>=

    

    

    

Comparisongreater-than-or-equal-to

    

    

    

if(i>=42)...

    

    

    

yes

    

    

    

    

    

9

    

    

    

==

    

    

    

Comparisonequal-to

    

    

    

if(i==42)...

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

eq

    

    

    

Alternatespellingfor==

    

    

    

    

    

    

    

    

Comparisonnot-equal-to

    

    

    

if(i!

=42)...

    

    

    

yes

    

    

    

    

    

not_eq

    

    

    

Alternatespellingfor!

    

    

    

    

    

10

    

    

    

&

    

    

    

BitwiseAND

    

    

    

flags=flags&42;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

bitand

    

    

    

Alternatespellingfor&

    

    

    

    

    

11

    

    

    

^

    

    

    

BitwiseexclusiveOR(XOR)

    

    

    

flags=flags^42;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

xor

    

    

    

Alternatespellingfor^

    

    

    

    

    

12

    

    

    

|

    

    

    

Bitwiseinclusive(normal)OR

    

    

    

flags=flags|42;

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

bitor

    

    

    

Alternatespellingfor|

    

    

    

    

    

13

    

    

    

&&

    

    

    

LogicalAND

    

    

    

if(conditionA&&conditionB)...

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

and

    

    

    

Alternatespellingfor&&

    

    

    

    

    

14

    

    

    

||

    

    

    

LogicalOR

    

    

    

if(conditionA||conditionB)...

    

    

    

yes

    

    

    

lefttoright

    

    

    

    

    

or

    

    

    

Alternatespellingfor||

    

    

    

    

    

15

    

    

    

?

    

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

当前位置:首页 > 初中教育 > 初中作文

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

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