第4章 C++基础语法

 

4  C++基础语法

4.1 理解c=2πr

注释comment :由“//”引起

语句statement:必须以分号结尾

标识符identifier :代表一定含义的名字

变量variable:标识符只注重名字,而变量的值是可变的

字面常量literal constant:在程序中不会改变,如2就是2,不会等于3

运算符operator+ - * =

表达式expression:标识符与操作符构成的表达式

左值l-value:置于复制操作符“=”左边的,必须是一个变量。

右值r-value:…………“=”右边,不一定是变量,也可以是字面常量

 

4.2 注释

块注释  /*    */

行注释 //

 

4.3标识符

即名字

 

4.3.1 命名规则

标识符只能包含字母、数字、下划线

不能以数字开头

不能用C++的关键词做标识符

严格区分大小写

 

4.3.2 关键字

C++ 中定义了以下关键字

asm

do

if

return

typedef

auto

double

inline

short

typeid

bool

dynamic_cast

int

signed

typename

break

else

long

sizeof

union

case

enum

mutable

static

unsigned

catch

explicit

namespace

staic_cast

using

char

export

new

struct

virtual

class

extern

operator

switch

void

const

false

private

template

volatile

const_cast

float

protected

this

wchar_t

continue

for

public

throw

while

default

friend

register

true

 

delete

goto

reintpret_cast

try

 

此外,C++还定义了保留字,建议不要用其作为标识符

and

and_eq

bitand

bitor

compl

not

not_eq

or

or_eq

xor

xor_eq

 

 

 

 

 

 

整形int

浮点型float

布尔型bool

字符型char

4.4数与类型

 

 

                基本类型

 

 

数组array

指针pointer

引用reference

C++数据类型

 

                符合类型

 

 

结构struct

联合union

枚举enum

class

 

 


                                     自定义类型

 

 

 

4.5基本类型(primitive type

4.5.1 整形int

用来表示整数 int=integer

短整形short、整形int、长整形long

整形分为有符号型signed、无符号型unsigned

默认情况下整形是有符号的

短整形长度16位(2字节)长整形长度32位(4个字节)

 

4.5.2 浮点型

表示实数类型(主要是小数)

包括单精度float 双精度double 长双精度型long double

单精度长度32位(4字节)  双精度长度64位(8字节)双长精度长度128位(8~16字节)

注意没有long float 或者unsigned double这种组合

 

4.5.3 布尔型

bool=Boolean

1就是真 0就是假

 

4.5.4 字符型

表示文本字符  char =character

char只占1个字节

中文字符是宽字符用wchar_t表示宽字符(占用16为,2个字节)

 

4.5.5 基本类型的字节长度

sizeof允许程序在运行时刻获取不同数据类型的字节数

c++标准对如下大小顺序做了规定:

1=sizeof(char)<=sizeof(short)<=sizeof(int)<=sizeof(long)

 

4.6字面常量

字面常量的值在程序中不会改变

 

4.6.1整数常量

整数常量一般可以表示成十进制、八进制、十六进制。

八进制在数值前面加“0

十六进制在树枝前面加上“0x”或者“0X

默认情况下,整形常量被认为是有符号的Int型,可以在数值后面加上l或这L指定其为long型,或者uU指定其为unsigned型,这两个后缀也可以组合使用。

 

4.6.2 浮点型常量

浮点型常量一般可以表示成十进制,也可以采用科学技术法  ,如10e-2

默认情况,浮点型常量被认为是double行,可以在数值后面加上f或者F/l或者L,指定其为float/long double

lf不能同时使用。

 

4.6.3 布尔型常量

只包含2个:true false 不要写成大写。

 

4.6.4 字符型常量

一般以单引号“”括起

c++提供的转义字符

转义字符

含义

/’

单引号

/”

双引号

//

反斜杠/

/t

水平制表符(Tab)

/r

回车

/n

换行

/b

退格

/a

响铃

/f

进纸

/v

垂直制表符

/?

问号

/ooo

ooo代表3个八进制数字

/x

代表十六进制数

可以在字符前面加上“L”,指定字符为wchar_t

注意L不能小写,不能和后面字符有空格,不能放在后面

 

 

4.6.5 字符串常量

即一串字符 由“”括起一个或者多个字符,如”abc”

如果字符串太长,需要写成多行,可以在前面行的末尾加上反斜杠/

“hello,/

world!” 完全等价与”hello,world!”

也可以声明宽字符的字符串L” hello,world!”,但是不允许L” hello,””world!”这种宽字符和非宽字符的串接

 

4.6.6 字面常量的类型

typeid允许在运行时刻获取指定数据的类型

如:cout<<”type name of 100:”<<typeid(100).name()<<endl;

输出内如如下:type name of 100:int

 

4.6.7 变量

可以同时声明同种类型的多个变量

 

4.7 语句

总是以一个分号结束

 

4.7.1 表达式

由字面常量、变量、操作符和函数调用等组成

 

4.7.2语句

4.7.3声明语句

一个变量不能被重复定义

 

4.7.4 赋值语句assignment

不能为一个字面常量赋值

 

4.7.5 初始化语句initialization

在定义一个变量的时候同时进行赋值

还可以用括号()将初始值括起来

如:doubler(100);

注:没有初始化的变量是不应该使用的

 

4.7.6 使用调试器观察变量值

P64

 

4.8 操作符operator

 

4.8.1赋值操作符

=

可以被连起来使用,如a=b=100; 赋值顺序从右向左。

4.8.2算术操作符

* / % + - ++ --

++作为后缀时如 b=a++,意味着先赋值b=a,再进行自加加a++,同理其他。

 

4.8.3 关系操作符

 >  >=  <  <=  ==等于   !=不能与

 

4.8.4逻辑操作符

&&   ||   !

 

4.8.5条件操作符

?:

<表达式1><表达式2>:<表达式3>

如果表达式1true就返回表达式2的值,否则就返回表达式3的值

 

4.8.6 位操作符

用来对数值进行位操作

&位与  |位或  ^异或  ~取补  <<左移  >>右移

详细解释见书P70~71

 

4.8.7观察二进制位操作

bitset 输出数的二进制表示

 

4.8.8复合赋值操作符

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

 

4.8.9逗号操作符

由逗号分隔的表达式,其值等于逗号后面的值,逗号是优先级最低的操作符

 

4.8.10 sizeof 操作符

用法

sizeof(变量)

sizeof(类型)

sizeof变量

sizeof返回一个类型为size_t的数值,可以认为这个size_t类型等于unsigned int

 

4.8.11 typeid操作符

用于返回一个变量或数据类型的“类型”

用法

typeid(类型)

typeid(变量

 

4.8.12 操作符的优先级

从高到低排序:

(){}->

!~++--+-*&(type)sizeof

*/%

+-

<<>>  

<ó>=

== !=

&

^

|

&&

||

?:

=  += -= *= = &= ^= |=<ó>=

,

 

 

4.9类型转换conversion

4.9.1隐式转换

short bool charint的转换叫做隐式转换

int i;

short s = 100;

i=s;   //shortàint

 

4.9.2显式转换

我们用显式转换cast,又称强值类型转换,告诉贬义词这种转换正式程序所期望的,不要再抱怨。

语法:

(类型)表达式;

类型(表达式);

(类型)(表达式);

如: s2=()short 100000;   //ok

 

以上表达式非常清晰,但是C++并不推荐,推荐使用(static_castdynamic_castconst_castreinterpret_cast)来完成,见18.2

 

4.9.3 算术转换p77

小于整数的数值总会先被转换成整形,这个规则一般称做整形提升

为了防止数据的损失,ab类型总是提升为两者中较宽的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值