suchenxiang 发表于 2022-2-14 12:00:36

怎么理解”请写出下边每行代码执行后 result 的值“这个问题

double result = 1.0;
result += 2.6;
result ++;
result * 5;

傻眼貓咪 发表于 2022-2-14 13:52:29

#include <stdio.h>

int main()
{
        double result = 1.0; // 声明 result 是 double 浮点数类型,赋值 1.0
        result += 2.6; // 增值 2.6 变成 3.6
        result ++; // 自增,如同 +1 变成 4.6
        result * 5; // 只有右值 lvalue,没有左值 rvalue,无意义,result 值不变,保持 4.6
       
        printf("%lf", result);
       
        return 0;
}

jhq999 发表于 2022-2-14 12:13:34

double result = 1.0;//1.0
result += 2.6;//3.6
result ++;//4.6
result * 5;//4.6

suchenxiang 发表于 2022-2-14 12:30:11

jhq999 发表于 2022-2-14 12:13


答案是这个,能说说每一行表示的是什么意思吗,谢谢!

中新大楼 发表于 2022-2-14 14:06:23

傻眼貓咪 发表于 2022-2-14 13:52


左值右值怎么理解呢?

jhq999 发表于 2022-2-14 14:13:27

中新大楼 发表于 2022-2-14 14:06
左值右值怎么理解呢?

等号左边就是左值,等号右边就是右值

傻眼貓咪 发表于 2022-2-14 14:22:34

中新大楼 发表于 2022-2-14 14:06
左值右值怎么理解呢?

如 6楼 大佬所说的,一般都是等号左边是左值,等号右边是右值。

中新大楼 发表于 2022-2-14 14:23:31

jhq999 发表于 2022-2-14 14:13
等号左边就是左值,等号右边就是右值

但是那上面写的不是乘号吗,没有等号

傻眼貓咪 发表于 2022-2-14 14:25:46

中新大楼 发表于 2022-2-14 14:23
但是那上面写的不是乘号吗,没有等号

因为你不能这样写:
result * 5 = result;

你只能这样写:
result = result * 5;

所以 result * 5 是右值

jhq999 发表于 2022-2-14 14:25:53

中新大楼 发表于 2022-2-14 14:23
但是那上面写的不是乘号吗,没有等号

所以没有左值,计算机只做了个运算,没有把运算结果赋值给别人,所以没有左值

中新大楼 发表于 2022-2-14 14:28:56

jhq999 发表于 2022-2-14 14:25
所以没有左值,计算机只做了个运算,没有把运算结果赋值给别人,所以没有左值

哦哦,原来,谢谢大佬

中新大楼 发表于 2022-2-14 14:30:02

傻眼貓咪 发表于 2022-2-14 14:25
因为你不能这样写:
result * 5 = result;



嗯嗯,明白了,谢谢大佬
页: [1]
查看完整版本: 怎么理解”请写出下边每行代码执行后 result 的值“这个问题