C++运算问题,求x++*++y和x--*--y

如题所述

主要涉及两个知识点,一个是左加(++x)和右加(x++)的区别,另一个是运算符优先级的问题(一个运算式没有括号时如何运算的过程)。
第一个问题,比较常见,随便一摘
例:
i
=
5,
++i,
i++;
++i
是使用
i
之前先使
i
加一,即运算式值是6,i的值也为6
i++
是使用
i
之后再加一,即运算式值是5,i的值是6
第二问题,百度一下“C++
运算符优先级列表”,就很清楚了,--和++的优先级都在*运算符之前,也就是说有++或--先运算。
那么第一个就是5*7=35。第二个是5*5=25。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-04
第一空:
5*(6+1)=35
运算后:x=6,
y=7
第二孔:5*(6-1)=25
运算后:x=4,
y=5
++或者--在前面,就是先自加1(或者自减去1),再参与运算;
++或者--在后面,就是先参与运算,运算结束后再自加1(或者自减1)。

C++运算问题,求x++*++y和x--*--y
第一空: 5*(6+1)=35 运算后:x=6, y=7 第二孔:5*(6-1)=25 运算后:x=4, y=5 ++或者--在前面,就是先自加1(或者自减去1),再参与运算;++或者--在后面,就是先参与运算,运算结束后再自加1(或者自减1)。

c++ 中的问题
int x = 1;y = -1; 给 y 赋值 -1 cout << (x-- & ++y) 这里先计算 x-- 减号在后面 x 取原值 1 进行运算 , 随后 ++y,加号在前面 先给 y 加 1 在进行运算 y的值为 0,然后算 (1 & 0 ) 这是位与运算 最终输出结果是就是 0 int x;y;z;x=y=z=0;先计算++x x...

++x,y=x--为什么不合法?
1、不像有问题,因为逗号表达式本身就是从左到右计算,而++x并不奇怪,按照c++03手册++x在对于非bool类型的时候是等价于x+=1的,而y=x--也看不出有问题 2、x+10是表达式,返回的是rvalue,自然不能对其赋值 3、double是关键字,但是在C++中是支持这种构造函数样子的转换方法的,但是C不支持 ...

关于C++的某些基础问题。
y+=x--可以这么理解:因为是x--,所以是先把x原来的值拿过来用再减1(因--在后面)。所以先进行:y+=x(即:y=y+x),因为x==5,y==6,所以此时y等于11 然后再进行:x--(即:x=x-1)此时x等于4;最后X+Y就应该等于11+4=15了 这一题目应该是考你运算符优先级和先--跟后--的...

一个关于C语言自增++运算的题目,高手进
回答:根据编译器而不同, 在你的编译器中应该是这样执行的: y=(++x)+(x++)+(++x); 因为第二个(x++)有括号,所以就求解x++再执行括号外面的+,结果也就是3+4+5=12 在VC中就不同

在c++中,++x||++y是什么意思
这是一个逻辑表达式, 判断 ++x 的值 或者 ++y 的值 是否有一个为真,如果有,则逻辑表达式++x||++y为真,否则为假。而且当 ++x 为真后,表达式将不会判断 ++y 的值。即++y不会执行。如果要输出x,y的值时,就会很明显了。

关于c++的问题。int x=4,y=5 表达式y>x++?x--:y++。。。的值是_百度...
这是个问号表达式,如果y大于x则执行x--反之执行y++,但是执行之前都会执行x++;那么此时x==,y==,比较是比较的x++之前的值,所以执行x--;此时x==5,但是先执行x,所以表达式的值为5,之后x==4y==5;

帮忙看几道题C++的简单题目,求答案,多谢了
1.40 连等是按照右向左顺序计算,x +=y和x =x+y没有区别。先算 x -=x-x,即x = x - ( x - x ),结果x = 20.再算x +=20,结果x = 40 2.返回值为指向int的指针 3.不能 4.6 答案为6的原因,这6个有效字符分别为 a b \\01 8 c \\n 如果定义 char str[ ] = ...

关于C++三目运算的问题
先判断--x == y++,--x是先执行-运算,实际上你可以理解成两句语句就是x-1 == y ; y = y+1;所以就是 10-1 == 9,成立,等到判断过了之后,y++生效,y = 10;然后给a赋值,--x,就是 a = x -1 ;你老师说的y++没有执行大概说的事 --x:y++里的y++。

(C++) 输入一个由数字、+、-、*、\/及括号组成的自述表达式,求其值。
S.top++=e;} float Pop_f(SqStack_f &S,float &e){ \/* 若栈不空,则删除运算数栈S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR *\/ if(S.top==S.base)return ERROR;e=*--S.top;return e;} char Pop_ch(SqStack_ch &S,char &e){ \/* 若栈不空,则删除运算符栈S的栈...

相似回答
大家正在搜