有人可以告诉我这是如何工作的吗? (C 编程)

标签 c increment

int m, n, j;
n=16;
j=15;
m = n++ -j+10;
printf("%d", m);

输出:11。

这里,首先,n 的旧值被赋予 m,然后它递增,所以我得到的新值是 17,然后表达式被求解,即j+10 = 25 然后 n 的新值减去 25 即 17-25。 我对吗 ?但答案与输出 11 不匹配。 那么这是如何工作的呢? 而且,我是编程新手,开始学习 C。你会推荐哪本书最适合我?因为我没有编程经验。 谢谢。

最佳答案

m = n++ -j+10; 等同于

m = n -j+10;
n = n + 1; // m is 11.

如果是++n 就是

n = n + 1;
m = n -j+10; //m is 12.

then the expression is solved i.e. j+10 = 25

没有。它将是 -j+10 = -5

我的建议是,不要写复杂的表达式,除非你完全确定你在写什么。

关于有人可以告诉我这是如何工作的吗? (C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002755/

相关文章:

c - 二维C数组

C中的自定义文件名

c - 如何用优先表证明 C 后缀增量运算符的合理性?

c - C中++val++和++*p++的解释

c - 不使用 OpenMAX 在 Raspberry Pi 中解码视频?

c - 当我将字符串分配给 int 时会发生什么?

这个功能可以更安全吗?寻找提示和您的想法!

java - 如何在 Java 的嵌套 for 循环中用字母递增值?

c++ - Visual Studio 6 VC++ 项目版本 - 如何增加它?

php - 基于PHP表单提交增加MySQL行值