一起学 c++(四)

继续上回要说的常量

.常量主要是数字常量、字符常量、字符串常量、宏定义常量、转义字符。

我们先来看下转义字符:

转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( ''),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。

符号名称

表示方法

换行符

\n

水平制表符

\t

垂直制表符

\v

退格符

\b

回车键

\r

进纸键

\f

响铃符

\a

反斜杠键

\\

问号

\?

单引号

\’

双引号

\”

 

字符串是由一对双引号括起来的零个或者多个字符序列。它可以包括空格符,转义字符或其他字符,与字符不同的地方在于:字符是单引号,字符串双引号,存储方式不一样(字符串以\0结尾),所以一个”m”的字符串占2个字节,而不是一个。

 

整数常量可以用十进制、八进制或十六进制表示,例如:

34    010       0x10

八进制数的前面有个0,就是让编译器解析为八进制数,所以八进制数只能有0~7。十六进制则以0x开头,可以使用0~9abcdefABCDEF。同时,整数后面可以指定是长整型和无符号类型,例如:130L130UL

 

浮点常量可以写成小数形式,也可以写成科学计数法的形式,默认为double类型。我们在使用科学计数法的时候,要在小数后面加E(e),如果在指定为float则要在数后面加F(f),如果指定长双精度则加DL(dl)例如:

3.14159             3.14159f           3.14e+8             3.14159DL

 

符号常量,除了直接用文字表示常量外,也可以使用常量命名,这就是符号常量。在使用之前一定要声明而且要初始化并且不能改变(要不就不是常量了@@),使用形式如下:

const 数据类型说明符常量名 = 常量值;

数据类型说明符 const 常量名 = 常量值;

例如:

Const float pi=3.1415926f;

 

.表达式

C++中含有很多运算符,运算符和变量,函数一起组成表达式

运算符

符号

算术运算符

+ - * / %

逻辑运算符

&&  || !

关系运算符

==  !=  <   >  <=  >=

位运算符

&  |  !  ^  <<  >>

赋值运算符

=

自增自减运算符

++  __

条件运算符

?:

逗号运算符

,

其他

&  *  ::

 

算术运算符的用法:

运算符

功能

用法

+

Expr1 + Expr2

-

Expr1 - Expr2

*

Expr1 * Expr2

/

Expr1 / Expr2

%

取余

Expr1 % Expr2

注意的是,%用于求余,只能用在整数和字符型操作数上,不能用于浮点数

 

赋值运算符:

赋值运算符=,将一个数的值传给一个变量。

Int a=3,b=4;

b=b*4; //赋值过程

b=a*1.5f; //类型转换

当赋值符号的左右两边类型不同时,编译器会把右边的类型转化成左边的类型。

 

增量运算符:

递增运算符++,就是使变量的值自增1。递减运算符,就是使变量的值自减1

但是放在变量前和变量后是会有不一样的效果哦:

运算符

功能

++i

i自增1后再参与其他运算,++i的值为自增后的值

--i

i自减1后再参与其他运算,--i的值为自减后的值

i++

i先参与运算后,i的值再自增1i++为自增前的值

i--

i先参与运算后,i的值再自减1i++为自减前的值

例如

#include <iostream>

using namespace std;

void main()

{

     int i=8;

     cout<<++i<<endl;

     cout<<--i<<endl;

     cout<<i++<<endl;

     cout<<i--<<endl;

     cout<<-i++<<endl;

     cout<<-i--<<endl;

}

 

结果是:9       8       8       9       -8      -9

 

关系运算符:

主要是用于比较2个数的大小,返回结果为BOOL型。

运算符

功能

用法

小于

Expr1 < Expr2

<=

小于等于

Expr1 <= Expr2

大于

Expr1 > Expr2

>=

大于等于

Expr1 >= Expr2

==

等于

Expr1 == Expr2

!=

不等于

Expr1 != Expr2

哈哈,这里突然想到一个问题,在刚开始学习的时候,我总是把等于写成=,所以导致了很多错误,在c++中的等于是==,一定要注意哦。所以我们在拿一个变量和一个常量值进行判断的时候,最后把常量写在前面,这样能避免一些错误。

int i=8;

 如果8=i  这样的话,编译器会报错,给我门很好的提示,但是i=8就不会出错。而8==i这个语法上也是没问题的。

 

逻辑运算符:

逻辑运算符用于逻辑运算,包含:&&||!逻辑非( ! ) 只有一个操作数,只有逻辑与(&&)2个操作数都为true时,结果才是true。逻辑或(||)只要有一个操作数为true结果就为true

运算符

功能

用法

!

逻辑非

!Expr1

&&

逻辑与

Expr1 && Expr2

||

逻辑或

Expr1 || Expr2

 

位操作运算符:

运算符

功能

用法

~

按位非

~ Expr1

<< 

左移

Expr1 << Expr2

>> 

右移

Expr1 >> Expr2

&

按位与

Expr1 & Expr2

^

按位异或

Expr1 ^ Expr2

|

按位或

Expr1 | Expr2

&=

按位与赋值

Expr1 &= Expr2

^=

按位异或赋值

Expr1 ^= Expr2

|=

按位或赋值

Expr1 |= Expr2

按位非,就是将1换成00换成1,例如:01111111,按位非后是10000000

左移和右移是将第一个操作数中每一位向左或向右移动若干位,移动的位数为第二个操作数,移动后,空缺的地方补0

按位与,要在每个位,如果两个操作数对应位都是1结果该位是1,否则就是0,例如:

0101&1101的结果是0101

按位异或,在每个位,如果两个操作数的相应位不相同,那么就是1,否则是0,例如:0101^1101的值为1000

按位或,在每个位,如果2个操作数对应位都是0,结果是0,否则都为1,例如:0101|1101的结果是1101

例外:按位与赋值,按位异或赋值,按位或赋值可表示成:

Expr1 &= Expr2 相当于Expr1= Expr1 & Expr2

Expr1 |= Expr2 相当于Expr1= Expr1 | Expr2

Expr1 ^= Expr2 相当于Expr1= Expr1 ^ Expr2

 

今天就暂时到这里吧,下回将会继续运算符,并开始各种程序语句。

 

个人网站http://www.ravedonut.com/

posted @ 2011-07-26 21:29  狂吼的面包圈  阅读(464)  评论(2编辑  收藏  举报