C++学习笔记——第三天运算符和表达式

目标
掌握C++支持的各种运算符和应用
掌握C++支持的由各种运算符和常量变量构成的表达式,语句及其应用

运算符

C++中包含了C语言中的运算符和表达式,并且又增加了一些新的运算符。
::作用域运算符
new动态分配内存单元运算符
delete删除动态分配的内存单元运算符
*是成员指针选择运算符
->*是成员指针运算符

算术运算符
C++的算术运算符包含单目运算符和双目运算符。单目运算符有减,增量,减量运算符。双目运算符有加,减,乘,除和模运算符。
这里写图片描述
这里写图片描述
单目减相当于负号,即操作数取负号
增量运算有前缀增量和后缀增量
- 前缀增量:++<运算分量> 表示使用运算分量前其值加1
- 后缀增量:<运算分量>++表示使用运算分量后加1
减量运算除了加法改为减法外,其他和增量运算完全相同
优先级:单目运算符>* 或、>%>+或-


#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a=5;
    int b=3;
    int c=1,d=2,e=6;
    int res=0;
    res = a+b-c/d+e%d;
    cout<<"运算结果为:"<<res<<endl;
    getchar();
    return 0;

这里写图片描述

赋值运算符
<变量名>=<表达式>

  • 表达式类型需要与变量的类型一致
  • “=”为赋值运算符,其不同于数学上的等号,赋值运算符的运算规则是先计算右边表达式的值,然后将值赋给左边的变量

    这里写图片描述

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int i ,sum;
    sum=0;
    for(i=1;i<=100;i++)
    {
        sum += i;   //循环相加
    }
    cout<<"运算结果为"<<sum<<endl;

    getchar();
    return 0;
}

这里写图片描述

关系运算符
关系运算符是双目运算符,作用是将两个运算分量进行大小比较,运算结果类型为布尔数据类型。
这里写图片描述

逻辑运算符
三种逻辑运算符,单目运算符有,逻辑非(!),双目运算符有逻辑与(&&)和逻辑或(||)
这里写图片描述
这里写图片描述

条件运算符
三目运算符;
<表达式1>?<表达式2>:<表达式3>

  • 表达式1必须是布尔类型。
  • 表达式执行的顺序是先求解表达式1;若1的值为true,求解表达式2,2的值为最终结果。如1的值为false,求解表达式3,3的值为最终结果。
  • 条件运算符优先级高于赋值运算符优先级,低于逻辑运算符,其结合性从左到又。
#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,x;
    cout<<"请输入两个数的值"<<endl;
    cin>>a>>b;
    x=a>b?a:b;
    cout<<"大的数值是"<<x<<endl;

    getchar();
    getchar();
    return 0;
}

这里写图片描述

逗号运算符
<表达式1>,<表达式2>

  • 表达式的执行顺序是,先求解表达式1,再求解表达式2,最终结果为表达式2的值,
  • 逗号运算符是优先级最低的运算符

位运算符

这里写图片描述
这里写图片描述

sizeof运算符
一般格式
sizeof(<类型名或表达式>)

运算符优先级
这里写图片描述
这里写图片描述

表达式

表达式是由运算符和操作数组成的式子。
这里写图片描述

算术表达式
算术表达式由算术运算符和位操作运算符组成的表达式。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,m=3,n=4;
    a=7*2+-3%5-4/3;
    b=(m++)-(--n);
    cout<<a<<"\t"<<b<<"\t"<<m<<"\t"<<n<<endl;
    getchar();
    return 0;
}

这里写图片描述

关系表达式
由关系运算符组成的表达式为关系表达式。运算结果为逻辑型。常用在条件和循环语句中。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char x='m',y='n';
    int n;
    n=x<y;
    cout<<n<<endl;
    n=x==y-1;
    cout<<n<<endl;
    n=('y' !='Y')+(5<3)+(y-x==1);
    cout<<n<<endl;

    getchar();
    return 0;
}

这里写图片描述

逻辑表达式
由逻辑运算符组成的表达式。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a=3,b=0;
    int result;
    result =! a && a+b && a++;  //只要有一个不为0的就不在计算其他子表达式
    cout<<result<<endl;
    result =!a||a++||b++;   //只要有一个为真就不再计算
    cout<<result<<endl;

    getchar();
    return 0;
}

这里写图片描述

条件表达式
由三目运算符“?:”组成的表达式为条件表达式。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a=3,b=4,c;
    c = a > b ? ++a : ++b;//5
    cout<<a<<","<<b<<","<<c<<endl;
    c=a-b?a-3?b:b-a:a;//嵌套条件表达式 值为2
    cout<<a<<","<<b<<","<<c<<endl;

    getchar();
    return 0;
}

这里写图片描述

赋值表达式
由赋值运算符组成的表达式为赋值表达式。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c,d;
    int m=3,n=4;
    a=b=c=d=5/2;
    cout<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<endl;
    m *= n+1;
    cout<<m<<"\t"<<n<<endl;

    getchar();
    return 0;
}

这里写图片描述

逗号表达式
逗号表达式是用逗号将若干表达式连接起来组成的表达式。

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a,b,c;
    a=1,b=2,c=a+b+3;
    cout<<a<<','<<b<<','<<c<<endl;
    c=(a++,a+=b,a-b);
    cout<<a<<','<<b<<','<<c<<endl;

    getchar();
    return 0;
}

这里写图片描述

语句

语句由表达式构成。

语句中的空格
语句中存在部分空格,保证程序的可读性。

空语句
语句也可以是直接是一个分号,这种语句称为空语句。一般用于语法上要求有一条语句但实际没有任何操作的场合。
例如

for(i=1;i<10;i++)
;//空语句 起延时作用

声明语句
主要作用是完成指定变量的定义。基本格式如下:
<数据类型><变量1>……<变量n>

赋值语句
赋值语句实现为指定变量获得指定值的操作。

参考:《21天学通C++》作者:刘蕾

猜你喜欢

转载自blog.csdn.net/weixin_39795049/article/details/82319784