鱼C论坛

 找回密码
 立即注册
查看: 2579|回复: 6

[已解决]大佬们这题咋做啊!!

[复制链接]
发表于 2021-4-28 15:13:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(1)        个程序代码片段的输出结果是什么?并简要阐述原因。
3、        实验代码如下:
int a=2;
表达式(1)a+=(a-=-a*a)++;  
      (2)a+=a-=-a*a;
最佳答案
2021-4-28 15:25:36
第二个的结果有可能是 12,也有可能不是,如果是 12 的话,那么是这样算的
a += a -= -a * a;
a += a -= -2 * 2;
a += a -= -4;
减 -4,就是 +4
a -= -4;
a = 6;
a += a;
a = 12

第一个编译报错
需要说明的是,有可能结果不是 12
main.c: In function ‘main’:
main.c:5:7: warning: operation on ‘a’ may be undefined [-Wsequence-point]
    5 |     a += a -= -a * a;
      |       ^~
main.c: In function ‘main’:
main.c:5:23: error: lvalue required as increment operand
    5 |     a += (a -= -a * a)++;
      |                       ^~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-28 15:25:36 | 显示全部楼层    本楼为最佳答案   
第二个的结果有可能是 12,也有可能不是,如果是 12 的话,那么是这样算的
a += a -= -a * a;
a += a -= -2 * 2;
a += a -= -4;
减 -4,就是 +4
a -= -4;
a = 6;
a += a;
a = 12

第一个编译报错
需要说明的是,有可能结果不是 12
main.c: In function ‘main’:
main.c:5:7: warning: operation on ‘a’ may be undefined [-Wsequence-point]
    5 |     a += a -= -a * a;
      |       ^~
main.c: In function ‘main’:
main.c:5:23: error: lvalue required as increment operand
    5 |     a += (a -= -a * a)++;
      |                       ^~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-28 15:37:50 From FishC Mobile | 显示全部楼层
人造人 发表于 2021-4-28 15:25
第二个的结果有可能是 12,也有可能不是,如果是 12 的话,那么是这样算的
a += a -= -a * a;
a += a -=  ...

为啥a-=-4之后,a又等于6了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-28 15:38:31 | 显示全部楼层
c++萌新 发表于 2021-4-28 15:37
为啥a-=-4之后,a又等于6了?

2 - (-4)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-28 16:08:17 | 显示全部楼层

大佬,又看见你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-28 16:31:53 | 显示全部楼层
#include <stdio.h>
int main(void)
{
        int a=2;
//        a +=(a -=-a*a)++;
        int i;
        a -=-a*a;
        i = a;
        i++;
        a = a + i;  
        printf("%d\n",a);
  //  a+=a-=-a*a;    //这个式子相当于   a就等于2倍的 a-=-a*a这个吧  
         int j;
    a-=-a*a;
    j = a;
    printf("%d\n",a);   //这一行输出测试一下
    a = a + j;

        printf("%d\n",a);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-28 16:33:08 | 显示全部楼层
lingnuous 发表于 2021-4-28 16:31
#include
int main(void)
{

你可以在编辑框里面分解测试一下,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 15:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表