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语言。你会推荐哪本书最适合我?因为我没有编程经验。谢谢。
发布于 2012-01-25 20:35:14
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.,那么表达式就求解了,即j+10 = 25
不是的。应该是-j+10 = -5
我的建议是,不要写复杂的表达式,除非你完全确定你在写什么。
发布于 2012-01-25 20:36:05
你在这方面有一些地方错了。
n++将递增n并返回原始结果,因此您将获得m = 16 ....-j,因此您将获得m = 16 - 15 ....+10,因此您将获得m = 16 - 15 + 10.上一次我做数学运算的时候,就像你们看到的,结果是m = 11。
如果你希望它是m = 17 - (15 + 10),那么你想:
int m, n, j;
n=16;
j=15;
m = ++n -(j+10);
printf("%d", m);发布于 2012-01-25 20:54:30
实际上,后增量操作是在操作之后对n执行的…你有16-15+10 = 11,但如果你打印n,你应该有17。
首先,你可以阅读一些关于基础知识的书籍,但这个例子并不简单;它包含了操作符的优先顺序,这可能会很棘手。
开始简单..。用c. http://www.cs.cf.ac.uk/Dave/C/node4.html编写不可读的代码非常简单。
希望能有所帮助
https://stackoverflow.com/questions/9002755
复制相似问题