一起学 c++(四)

继续上回要说的常量

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

我们先来看下转义字符:

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

**符号名称** **表示方法**
换行符 \n
水平制表符 \t
垂直制表符 \v
退格符 \b
回车键 \r
进纸键 \f
响铃符 \a
反斜杠键 \\
问号 \?
单引号 \’
双引号 \”

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

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

340100x10

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

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

3.141593.14159f3.14e+83.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

usingnamespacestd;

voidmain()

{

inti=8;

cout<<++i<<endl;

cout<<--i<<endl;

cout<<i++<<endl;

cout<<i--<<endl;

cout<<-i++<<endl;

cout<<-i--<<endl;

}

结果是:9889-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/
原文链接: https://www.cnblogs.com/panjiangfy/archive/2011/07/26/cxuexi4.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29323

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午6:44
下一篇 2023年2月8日 上午6:45

相关推荐