注册 登录
编程论坛 C++教室

小弟初来乍到,请各位多多关照

周昱树 发布于 2020-08-31 17:44, 2199 次点击
刚入门就有疑惑不解的问题了,还请各位高手指指路
程序代码:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
    int a = 3;
        a += a -= a*a;
        printf("%d\n", a);
    int b = 3;
        b - (--b);
        printf("%d\n", b);
        printf("虽然b的结果是2,但是课本答案给的是0,这就很让人迷惑\n");
        system("pause");
}


只有本站会员才能查看附件,请 登录
6 回复
#2
Jonny02012020-08-31 23:53
换个课本吧
误人子弟
以编译器为主, 课本这么教人写代码以后容易被打死
#3
倾听心跳2020-09-02 10:40
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
    int a = 3;
        a += a -= a*a;
        printf("%d\n", a);
    int b = 3;
        b - (--b);  // 这个式子的结果是0,但没有把0赋给b,所以b只执行--,为2
        printf("%d\n", b);
        printf("虽然b的结果是2,但是课本答案给的是0,这就很让人迷惑\n");
        system("pause");
}
#4
Link2Points2020-09-02 17:33
b -= --b    ???
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#5
周昱树2020-09-04 07:43
回复 2楼 Jonny0201
这个课本,大概也就是为了考试吧。
#6
周昱树2020-09-04 07:46
回复 3楼 倾听心跳
好的,谢谢大佬,原来是显示的不是式子的最终结果
#7
周昱树2020-09-04 07:48
回复 4楼 Link2Points
原题中b-(- -b),最终没有赋值,所以结果才是,现在明白了,谢谢大佬O(∩_∩)O
1