目标
掌握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++》作者:刘蕾