+ -
当前位置:首页 → 问答吧 → C语言的计算值,返回值?

C语言的计算值,返回值?

时间:2011-12-24

来源:互联网

C语言的有的操作符只计算一个值。
有的操作符不仅计算一个值,还有一个返回值,对否?
(1)x+1,操作符+组成的表达式,仅计算一个值。
(2)x--,操作符--组成的表达式,不仅计算一个值,还返回一个值。
对否?

作者: mpaga   发布时间: 2011-12-24

不是的吧 之时把原来变量值减一嘛

作者: xxwy89   发布时间: 2011-12-24

也可以这么理解吧
左值 右值

作者: yafeng_jiang   发布时间: 2011-12-24

什么左值 右值 这根本不是赋值语句 这就是一表达式

作者: pclvmm   发布时间: 2011-12-24

(1)x=2;x+1;
计算值:3
(2)x=2;x--;
计算值:1。
返回值:2。
对否?

作者: mpaga   发布时间: 2011-12-24

引用 3 楼 pclvmm 的回复:
什么左值 右值 这根本不是赋值语句 这就是一表达式


看错了。。。

作者: pclvmm   发布时间: 2011-12-24

x--; 等价于 x=x-1;
y = x--; 等价于 y = x; x = x-1;
y = --x; 等价于 x = x-1; y = x;

你的返回的概念我理解的不是很清楚 如果你的返回的意思就是x--,--x之后的y的值 应该是对的

作者: pclvmm   发布时间: 2011-12-24

可以看一下C++的运算符重载

作者: udbwcso   发布时间: 2011-12-24

《C参考手册》7.4.4++,--,这两个操作符都必须是可以修改的左值,可以是任何算术类型或指针类型。如果是++,操作数的值就加上常数1。如果是--,操作数的值就减去常数1。经过操作之后,操作数的值被修改,并且返回它们被修改之前的值。返回结果不再是左值。

“经过操作之后,操作数的值被修改,并且返回它们被修改之前的值。返回结果不再是左值。”
这句话的意思是:有一个计算值,有一个返回值?对否?

作者: mpaga   发布时间: 2011-12-24

一个是计算后变量的值,一个是表达式的值。
(1)x=2;x+1;
  x=3
(2)x=2;x--;
  x=1。
  x--这个表达式的值为2。
  如y=x--则y=2。

作者: wizard_tiger   发布时间: 2011-12-25

引用 9 楼 wizard_tiger 的回复:

一个是计算后变量的值,一个是表达式的值。
(1)x=2;x+1;
x=3
(2)x=2;x--;
x=1。
x--这个表达式的值为2。
如y=x--则y=2。

写错了
(1)中x=2,是x+1这表达式的值为3

作者: wizard_tiger   发布时间: 2011-12-25

一个是计算后变量的值,一个是表达式的值。
(1)x=2;x+1;
  x=3
(2)x=2;x--;
  x=1。
  x--这个表达式的值为2。
  如y=x--则y=2。

作者: yuzengyuan   发布时间: 2011-12-25

引用 4 楼 mpaga 的回复:
(1)x=2;x+1;
计算值:3
(2)x=2;x--;
计算值:1。
返回值:2。
对否?
你说的是int y=x--;是吧。这个是运算符的优先级的关系。

作者: newadice   发布时间: 2011-12-25

热门下载

更多