这段c++代码运行结果为什么等于2,3,3,2,-2,-3,现在还是有些不懂! int a=2 cout<<a++<<endl; cout<<
这段c++代码运行结果为什么等于2,3,3,2,-2,-3,现在还是有些不懂!inta=2cout<<a++<<endl;cout<<a--<<endl;cout<<++...
这段c++代码运行结果为什么等于2,3,3,2,-2,-3,现在还是有些不懂!
int a=2
cout<<a++<<endl;
cout<<a--<<endl;
cout<<++a<<endl;
cout<<--a<<endl;
cout<<-a++<<endl;
cout<<-a--<<endl; 展开
int a=2
cout<<a++<<endl;
cout<<a--<<endl;
cout<<++a<<endl;
cout<<--a<<endl;
cout<<-a++<<endl;
cout<<-a--<<endl; 展开
4个回答
展开全部
a++或者a--是先使用,后改变,++a,--a是先改变后使用。同时运算符有优先级,正负号优先级很高。
所以你的程序可以这么理解
int a = 3;
cout<<a<<endl;// 2
a = a + 1; //3
cout<<a<<endl;//3
a= a - 1;//2
a= a + 1;//3
cout<<a<<endl;//3
a= a - 1;//2
cout<<a<<endl;//2
cout<<-a<<endl;//-2
a= a + 1;//3
cout<<-a<<endl; //-3
a = a -1;
结果就是这样了,这些还算简单。
但是说点题外话,比如这样 int b = (a++) * (a --) + (a++) + (++a);甚至更长,你可能正确理解结果。答案是,如果足够长,没有人能够在不头晕的情况下搞定。
所以你只要弄清基础的就行了,不要去深究太复杂的东西,这跟编译器以及运算符的结合方向都有关系。在你真正使用的过程中,尽量简单使用这些东西。(就好像你现在的用法数据基本的简单的)
所以你的程序可以这么理解
int a = 3;
cout<<a<<endl;// 2
a = a + 1; //3
cout<<a<<endl;//3
a= a - 1;//2
a= a + 1;//3
cout<<a<<endl;//3
a= a - 1;//2
cout<<a<<endl;//2
cout<<-a<<endl;//-2
a= a + 1;//3
cout<<-a<<endl; //-3
a = a -1;
结果就是这样了,这些还算简单。
但是说点题外话,比如这样 int b = (a++) * (a --) + (a++) + (++a);甚至更长,你可能正确理解结果。答案是,如果足够长,没有人能够在不头晕的情况下搞定。
所以你只要弄清基础的就行了,不要去深究太复杂的东西,这跟编译器以及运算符的结合方向都有关系。在你真正使用的过程中,尽量简单使用这些东西。(就好像你现在的用法数据基本的简单的)
展开全部
int a=2
cout<<a++<<endl;从左向右运算,首先输出a=2,再使a+1=3,不输出,移到到下一个语句
cout<<a--<<endl;上个语句结束a=3,所以按从左向右运算,还是输出a=3,再使a-1=2,语句结束
cout<<++a<<endl;上个语句a=2,这时使a+1=3,输出,语句结束
cout<<--a<<endl;上个语句a=3,这时使a-1=2,输出,语句结束
cout<<-a++<<endl;上个语句a=2,这时-a++就相当于-(a++)所以先算括号,就跟第一个运算一样了,先输出-a也就是-2,在算-(a++)也就是-3了,这里其实a=3不是a=-3,语句结束,值得说一点的是a一直是正数,因为a的运算一直是a++, a-- ,++a, --a这四个,所以最后一个语句输出的就是-a也就是-3了.
cout<<-a--<<endl;
cout<<a++<<endl;从左向右运算,首先输出a=2,再使a+1=3,不输出,移到到下一个语句
cout<<a--<<endl;上个语句结束a=3,所以按从左向右运算,还是输出a=3,再使a-1=2,语句结束
cout<<++a<<endl;上个语句a=2,这时使a+1=3,输出,语句结束
cout<<--a<<endl;上个语句a=3,这时使a-1=2,输出,语句结束
cout<<-a++<<endl;上个语句a=2,这时-a++就相当于-(a++)所以先算括号,就跟第一个运算一样了,先输出-a也就是-2,在算-(a++)也就是-3了,这里其实a=3不是a=-3,语句结束,值得说一点的是a一直是正数,因为a的运算一直是a++, a-- ,++a, --a这四个,所以最后一个语句输出的就是-a也就是-3了.
cout<<-a--<<endl;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a++ 先使用a的值 再 a加1
所以 第一个输出2 执行完 a变为3
a-- 先使用a的值 再a减1
所以第二个输出3 执行完 a 变为2
++a 先把a加1 ,再是用 加了1 后的新值
所以第三个 输出 3 (先把2加1成为3 ,再使用新的值3 输出它)
--a 先把 a 减1 再是哟个 减了1 后的新值
所以第四个 输出2 3减成了2 输出2
-a++ 根据优先级和结合性 是 -(a++)
先看 () 里面 ++在后 先使用 a的值 如何使用 ? -a
即-a给cout去输出-2 然后再 a加1 变为3
-a-- 类似的 它先输出 -3
总之记住 ++ -- 在前 是 先 +- 然后再使用+-完得到变量的新值
++ -- 在后 就 先使用变量,然后再对变量+-
所以 第一个输出2 执行完 a变为3
a-- 先使用a的值 再a减1
所以第二个输出3 执行完 a 变为2
++a 先把a加1 ,再是用 加了1 后的新值
所以第三个 输出 3 (先把2加1成为3 ,再使用新的值3 输出它)
--a 先把 a 减1 再是哟个 减了1 后的新值
所以第四个 输出2 3减成了2 输出2
-a++ 根据优先级和结合性 是 -(a++)
先看 () 里面 ++在后 先使用 a的值 如何使用 ? -a
即-a给cout去输出-2 然后再 a加1 变为3
-a-- 类似的 它先输出 -3
总之记住 ++ -- 在前 是 先 +- 然后再使用+-完得到变量的新值
++ -- 在后 就 先使用变量,然后再对变量+-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a++ :先取值再自加;
a--: 先取值再自减;
++a:先自加再取值;
--a:先自减再取值;
(-a++):先自加再加负号;
(-a--):先自减再加负号;
运算级优先级 ++ -->+ -;
a--: 先取值再自减;
++a:先自加再取值;
--a:先自减再取值;
(-a++):先自加再加负号;
(-a--):先自减再加负号;
运算级优先级 ++ -->+ -;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询