关于C语言中运算符的问题

时间:2015.11.30 发布人:梦的飞翔1

关于C语言中运算符的问题

已解决问题

谷歌梦的飞翔1用户在2015.11.30提交了关于“新场古镇关于C语言中运算符的问题”的提问,欢迎大家涌跃发表自己的观点。目前共有4个回答,最后更新于2025-02-14T17:09:13。

请问一下

1.\x是十六进制的前导是什么意思?\12转化为十进制为10,那么10为一个字符吗?

2.intm=5;

if(m++>5)

{printf("%d\n",m);}

else

{printf("%d\n",m--);}

请问这一段代码,为什么输出结果是6呢?

判断m++>5时,不是m的原值和5比较吗?

另外再举一个例子:c=m++;与c=++m;这里的m++是先把值赋给c,后面的++m是先使m+1,再将m+1赋给c,这里与上面的m++>5有什么区别呢?

3.intm=5;printf("%d\n",m--);这里的m--输出结果是m--结果是5,为什么不是4呢?这个问题和第二个问题有什么区别?


希望大家能够帮助她。

详细问题描述及疑问:

请问一下

1.\x是十六进制的前导是什么意思?\12转化为十进制为10,那么10为一个字符吗?

2.intm=5;

if(m++>5)

{printf("%d\n",m);}

else

{printf("%d\n",m--);}

请问这一段代码,为什么输出结果是6呢?

判断m++>5时,不是m的原值和5比较吗?

另外再举一个例子:c=m++;与c=++m;这里的m++是先把值赋给c,后面的++m是先使m+1,再将m+1赋给c,这里与上面的m++>5有什么区别呢?

3.intm=5;printf("%d\n",m--);这里的m--输出结果是m--结果是5,为什么不是4呢?这个问题和第二个问题有什么区别?


期待您的答案,谢了,下次有事儿别忘了找我 !
希望以下的回答,能够帮助你。

第1个回答

用户名:whoami1978  

1.在C字串中

\x表示后面是十六进制,如\x41表示字符'A'(A的ASCII十六进制就是41)

而\12是表示八进制,它是十进制的10,表示换行字符(十六进制0A),它的确是一个字符

2.先执行

if(m>5)//此时m=5所以来自条件不成立

再m++;//m==6

然后执行

printf("%d\n",m--);

所以结果为6

且m--;//最终m==5

第2个回答

用户名:彳_亍  

1.\x就是指后面的代表16进制就足粮是一个数字不是字符

2.因为if条件判断结束以后,m的值已经加上了,到else的时候其实是6--了

3.输出是5,但是如果你再在后面加一条输出m的话,这经较天推积规何势七反个m的值就是4

第3个回答

用户名:卅月  

1.\x是兵促缺商干得走16进制数字前导,是定义一个数字,使用16进制的方式定义,数字不同于字符。\x12转化为10进制不是10,是18,这是个数字和字符没有关系。

2.这段代码在if笔究点将我(m++>5)这行时,m是等于5的,判断的条件是不成立的,判断完成后执治眼杂行了m+1,然后执行了elseprintf("%d\n",m--);在执行这句时m已经等于6了,所以输出结果是6.输出结束后执行了m--,m再次变成5。

c=m++和m++>5没有区别,只是这两行执行后的m都是等6,只是前者的c=5。

3.因为m--是先执行表达式,然后再执行--,所以在printf执行时m还是5,执行后m才改变成4.

第4个回答

用户名:挥洒的的撒  

回答你第二第三个。++和--在后面就先运算后赋值(加减一)。