• 一起学 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/

  • 相关阅读:
    入职小白随笔之Android四大组件——内容提供器详解(Content Provider)
    入职小白随笔之Android四大组件——广播详解(broadcast)
    入职小白随笔之Android四大组件——活动详解(activity)
    入职小白随笔之高通项目编译流程
    Java基础学习-Random类和Java数组
    Java基础学习-流程控制语句
    Java基础学习-三元运算符和键盘录入的基本步骤和使用
    Java基础学习-Eclipse综述和运算符的使用
    Java基础学习-类型转换之隐式转换
    SQLite----Android Studio3.6.3 当前最新版本数据库查找与导出方法
  • 原文地址:https://www.cnblogs.com/panjiangfy/p/cxuexi4.html
Copyright © 2020-2023  润新知