C语言中不是把"="右边的值附给左边了?
答案:5 悬赏:20 手机版
解决时间 2021-02-09 02:15
- 提问者网友:送舟行
- 2021-02-08 11:06
为什么#include #include int main(void){int i=3; i=i++; printf("%d\n",i);}打印出来的结果是4?单独打印i++的结果应该是3的(新手)
最佳答案
- 五星知识达人网友:蓝房子
- 2021-02-08 11:56
这样给你讲吧
// i++ 是先把 i作为 表达式的值, 然后将i的值加1
i = i++ ; // 可以这样看 i = a; a = i++; 此时 i 的值 依然是3
执行完之后 i的值 在 +1;
你上面的代码 和下面的 一个效果
int i = 3;
i++;
printf("%d\n", i);
// i++ 是先把 i作为 表达式的值, 然后将i的值加1
i = i++ ; // 可以这样看 i = a; a = i++; 此时 i 的值 依然是3
执行完之后 i的值 在 +1;
你上面的代码 和下面的 一个效果
int i = 3;
i++;
printf("%d\n", i);
全部回答
- 1楼网友:舊物识亽
- 2021-02-08 14:57
a = b++ 是先把右边的b的值赋值给左边的a 然后右边的b再自加一。
应为a和b都指向同一个变量,所以i = i++执行完了之后i的值等于4了
单独打印i++,实际上就是i先把值传给printf然后再加一,所以打印的结果为3
- 2楼网友:廢物販賣機
- 2021-02-08 14:07
% 就是求余计算,左右两边必须是整数。
所谓求余就是 a除以b = c 余d ,d就是%的结果
当a
- 3楼网友:玩家
- 2021-02-08 13:21
i = i++;
你改成 int j = i++;
就没那么多问题了。。
--------------------------
主要还是你用的是同一个i才有这么多绕。。
- 4楼网友:英雄的欲望
- 2021-02-08 12:16
这是C语言不同于人们习惯的地方。
C语言 有 前缀加加++i 和 后缀加加i++.
前缀加加++i,i要先增1,再用于表达式。
后缀加加i++,表达式的i不增加1,直接用于表达式,出了表达式再增1。
也就是 i=i++; 分解为: i=i; i=i+1; 两句。
i= ++i; 分解为: i=i+1; i=i; 两句。
--
单独打印i++, 就是: i=i; printf("%d\n",i); i=i+1; 结果是3
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯