比较简单的C语言问题,有些困惑

main()
{int m==5;
if(m++>5)printf("%d\n",m);
else printf("%d\n",m--);}为什么结果是6啊,m++>5是先比较再加1,所以应执行ELSE语句啊

我可以很负责任的告诉你 1、2楼回答的是瞎扯淡

m++>5 优先级是先比较再++ 如果是++m>5 那就是先自增1然后再比较
对于这个题 很明显if不成立执行else
执行else的时候 m++已经执行完毕 这时候m的值是6
所以prinf("%d\n",m--);结果是6

换个理解方式 你把else后面的那句话换成prinf("hello");
结果是输出hello

另外 初始化并赋值 应该这么写
int m=5; 不是int ==5;
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-13
++的优先级大于>,所以是6.
第2个回答  2009-12-13
++的优先级大于>,到printf("%d\n",m)时M变成6;

比较简单的C语言问题,有些困惑
我可以很负责任的告诉你 1、2楼回答的是瞎扯淡 m++>5 优先级是先比较再++ 如果是++m>5 那就是先自增1然后再比较 对于这个题 很明显if不成立执行else 执行else的时候 m++已经执行完毕 这时候m的值是6 所以prinf("%d\\n",m--);结果是6 换个理解方式 你把else后面的那句话换成prinf("...

C语言求值问题——再次困惑
这道题有一些问题,我在VC6.0环境下运行,结果用十六进制输出是0xCCCC010A,说明题中只是将低位的两个字节赋值了,而高位的两个字节的值是不确定的.在对x.c[0],x.c[1]赋值之前先对整块内存初始化一下就OK了,程序改为:void main(){ union ss { int i;char c[2];};union ss x;x.i = ...

C语言问题---非常困惑
是你读文件的问题fread(hr,1,10,fp);中第二个参数不要写成定值,你现在每次都从第一个字符读,所以读4次,就是1+2+3+4-10个字符,你的数组已经满了,别的就读不出来了!!

大一新生,最近在学C语言,非常痛苦,怎么办? - 知乎
学习C语言的初学者经常会遇到困难,你所描述的经历我深有体会。入门阶段,C语言的特性,如指针、内存管理等,确实让人感到困惑。你可能对诸如“1\/3.0,1\/3不一样”这样的设计原理感到困惑,以及如何正确使用`scanf`和`gets`函数,甚至理解数组索引的规则等。这些都可能是让你感到痛苦的原因。解决之道...

我对C语言的学习有许多困惑
学习计算机语言最好的方法是什么?答曰:读程序。没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,...

C语言菜鸟的困惑~~~
在这里a=31.1111是将定义的float a,b;中的a赋值,并不是将char c='a'中的a赋值!这是变量a的值是31.1111,而c依然是字符‘a’。完毕!

C语言数据结构地址问题 很困惑,请知道的帮你分析下。题目如下,
行优先表示只有一行满了才开始存下一行 你这里面主要是首先计算数组中每个元素的内存 先计算a[2][3]和a[4][7]间有多少元素 显然有两行多4个元素 每行9个 所以共有2*9+4=22 它们的地址差为1153-1087=66 表示22元素共占内存66 一个占3 a[6][7]比a[4][7]多2*9=18元素 地址应该大...

新手问!简单的 C 语言~~~
在探讨C语言中的递归概念时,有两位初学者提出了各自的问题。他们分别针对递归函数的理解进行了探讨,其中涉及了递归的结束条件以及递归调用的实际效果。首先,我们来解答第一个问题。一位新手可能对递归函数的死循环感到困惑,这实际上源于他们未能正确设置结束条件。在递归过程中,每一个函数调用都应该有一...

C语言算鸡兔同笼问题遇困惑
unsigned long int a,b,c,d;这句定义说明,a,b,c,d都是无符号长整数,所以c和d肯定是>=0的。而输出用的是格式化%ld,能输出负数。修改这个问题,只要定义为长整数就可以了,如下:long int a,b,c,d;根据你的要求,也可以这样改,不判断结果,在做减法之前就判断大小,提前判断。如下:voi...

大一新手c语言菜鸟。求大神解决一个非常简单的小困惑,为何下面用了abs...
abs_sum 是自己定义的函数,跟math的abs没有关系。函数过程都是自己实现的,为啥要include

相似回答
大家正在搜