++i, --i :使用i之前,先使i的值加(减)1。
i++, i-- :使用i之后,再使i的值加(减)1。
其中++i和i++的作用相当于i=i+1。但是++i和i++不同之处在于++i是先执行i=i+1后,再使用i的值;而i++是先使用i的值后,再执行i=i+1。
**例如:**
i=6
a=++i; //i的值先变成7,再赋值给a,a的值才为7
b=i++; //先将i的值6赋给b,b的值为6,然后i变为7
**例如:**
i=3;
cout<<++i; //输出4,此时i=4
**若改为:**
cout<<i++; //输出3,此时i=4
一、设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是
cout<
#include<iostream.h>
void main()
{
int x=10,y=3;
cout<<x--<<--y;
}
此题是最基本的,自增自减的运算。
二、以下程序的输出结果是 ( )
#include<iostream.h>
void main()
{
int a=12,b=12;
cout<<--a<<" "<<++b<<endl;
}
三、以下程序的输出结果是 ( )
#include<iostream.h>
void main()
{
int y=3,x=3,z=1;
cout<<(++x,++y)<<" "<<z+2<<endl;
}
z= (x++, y++);
因为逗号操作符的关系 执行x++值丢弃 再执行z = y++;
所以这行类似于
x++;
z = y++;
//以上程序结果为1.
#include<iostream.h>
void main()
{
int x,y;
x=y=3;
int t=++x||++y;
cout<<t<<endl;
}
注意:
1、 自增运算符和自减运算符只能用于变量,而不能用于常亮或表达式,如6++或(a+b)++都是不合法的。因为6是常量,常量的值不能改变。(a+b)++也不可能实现,如果a+b的值为6,那么自增后得到的7放到什么地方呢?无变量可供存放。
2、 ++ 和—的结合方向均是“自右向左”。一般情况下算数运算符的结合方向为“自左向右”,如果有-i++,i的左面是负号运算符,右面是自加运算符。如果i的原值等于3,若按照左结合性,相当于(-i)++,而(-i)++是不合法的。
3、如果cout<<-i++<<endl;
则先取i的值6,输出-i的值-6,然后i增加为7。而-(i++)是先用i的原值3加上负号输出-3,再对i加1,不要认为先加完1后再加负号,输出-4,这是不对的。
4、 自增(减)运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针变量指向下一个内存地址。
#include<iostream.h>
void main()
{int n='c';
switch(n++)
{ default: cout<<"error";break;
case 'a':case 'A':case 'b':case 'B':cout<<"good";break;
case 'c':case 'C':cout<<"pass";
case 'd':case 'D':cout<<"warm";}
}//结果为passwarm
若从键盘输入58,则以下程序输出的结果是585858
#include<iostream.h>
main()
{ int a;
cin>>a;
if(a>50) cout<<a;
if(a>40) cout<<a;
if(a>30) cout<<a;
}