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