1. 程式人生 > >C++學習筆記——第三天運算子和表示式

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++》作者:劉蕾