一、赋值运算符
ID:变量名=表达式
1.先计算右端表达式,再把值赋给左端变量
2.x=3*5/(2+8),x=7
3.右端转换为左端定义的变量类型(int x=10/3.0)
4.x=y=z=5
5.x+=5(等价x=x+5)
6.x+5=y(非法)
7.(x+=5)*=2 复合赋值
8.+=,-+,*=,/=,%=
二、算数运算符
ID:++/--;+;-;*;/;%
CPP:
#include <iostream>
using namespace std;
void main()
{ int x=10,y=4;
cout<<"x="<<x<<" "<<"x++="<<x++<<endl;
x=10;
cout<<"x="<<x<<" "<<"x--="<<x--<<endl;
x=10;
cout<<"x="<<x<<" "<<"--x="<<--x<<endl;
x=10;
cout<<"x="<<x<<" "<<"++x="<<++x<<endl;
x=10;
cout<<"x+y="<<x+y<<endl;
cout<<"x-y="<<x-y<<endl;
cout<<"x*y="<<x*y<<endl;
cout<<"x/y="<<x/y<<endl;
cout<<"x%y="<<x%y<<endl; }
Results:
x=11 x++=10
x=9 x--=10
x=9 --x=9
x=11 ++x=11
x+y=14
x-y=6
x*y=40
x/y=2
x%y=2
说明:
1.x++/x--/++x/--x都看成是表达式的值,遇到++/--在前则表达式先+1/-1,x值发生变化,遇到++/--在后则先表达式值保持不变,x值发生变化。
2."除"因为是整形(int),故只能显示实数部分;若想获得精确值可以通过数据类型转换((float)x/y),结果为2.5
3.取模,非常有用(如控制格式输出每行5个数值:if(i%5=0)cout<<endl;)
三、关系运算符
ID:<,<=,>,>=,==,!=
1.运算结果为true或false
四、逻辑运算符
ID:!,&&,||
1.!单目运算—逻辑反
2.&&,||,运算两边分量的值—逻辑运算结果(且,或)
五、条件运算符
ID:表达式1?表达式2:表达式3
1.x=a>b?a:b //若a>b为真,则x=a,否则x=b
cpp:#include <iostream>
using namespace std;
void main(){
int a,b, max;
cin>>a>>b;
max=a>b?a:b;
cout<<"Max="<<max<<endl;}
六、逗号运算符
ID:表达式1,表达式2,表达式3....表达式N
int x=5,y;
y=(t=x+5,t=t*t,t);//t1=10,t2=100,t3=100,则y=100
七、sizeof运算符
ID:sizeof()
1.sizeof(char),sizeof(int)..
2.int a;double b;
sizeof(a),sizeof(b)..
cpp:#include <iostream>
using namespace std;
void main(){
char ch;
cout<<"please input int=i,char=c,float=f,double=d?"<<endl;
cin>>ch;
switch(ch)
{case 'i':
cout<<"you want to the size of int="<<sizeof(int)<<endl;
break;
case 'c':
cout<<"you want to the size of char="<<sizeof(char)<<endl;
break;
case 'f':
cout<<"you want to the size of float="<<sizeof(float)<<endl;
break;
case 'd':
cout<<"you want to the size of double="<<sizeof(double)<<endl;
break;
default:
cout<<"Not in area!"<<endl;
break;}
八、圆括号运算符
ID:xx()
1.函数调用;sqrt(2),strcpy(d,s),myfunction(a,b)
cpp:
/*using a function template,模板其实就是具有相同参数个数的一组函数的抽象,如果参数个数不一,可以使用函数重载(overloading function),函数是两者的基本单元*/
#include <iostream>
using namespace std;
//*************************************
template <class T>
T maximum(T value1,T value2,T value3)
{
T Max=value1;
if(value2>Max)Max=value2;
if(value3>Max)Max=value3;
return Max;
}
//**************定义模板*******************************
int main()
{
int int1,int2,int3;
cout<<"Enter three integer value:"<<endl;
cin>>int1>>int2>>int3;
cout<<"The Max value is:"<<maximum(int1,int2,int3)<<endl; //模板(副本)调用,返回最大值
double double1,double2,double3;
cout<<"Enter three double value:"<<endl;
cin>>double1>>double2>>double3;
cout<<"The Max value is:"<<maximum(double1,double2,double3)<<endl; //模板(副本)调用,返回最大值
char char1,char2,char3;
cout<<"Enter three character value:"<<endl;
cin>>char1>>char2>>char3;
cout<<"The Max value is:"<<maximum(char1,char2,char3)<<endl; //模板(副本)调用,返回最大值
return 0;
}
2.强制类型转换(动态);int a;double(a)或(double)a;,char(65),double(8)
3.一元强制性类型转换(静态):static_case<type>()
九、数组下标运算符
ID:[]
十、指针运算符
ID:*(取地址)和&(引用传递)
十一、动态存储分配运算符
ID:new,delete
十二、作用域限定运算符
ID: ::(一元作用域)
cpp:
#include <iostream>
using namespace std;
const double pi=3.1415926535;
int main()
{
const float pi=static_cast <float>(::pi)
cout<<"local float value of pi="<<pi<<endl;
cout<<"global double value of pi="<<(::pi)<<endl;
return 0;
}
vc++运算符
最新推荐文章于 2023-09-12 10:37:31 发布