vc++运算符

    技术2022-05-20  34

    一、赋值运算符 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;}


    最新回复(0)