C语言的小程序的解析,帮我分析下吧,大虾们!

C语言的小程序的解析,帮我分析下吧,大虾们!,第1张

n%10 是n除以10取余数 如伍茄绝果n=12那么n%10=2

因为你定义的n是INT类型的,所以输出n%10后,它执行n=n/10,正因为N是INT类型的,所以N/纳睁10是取整数部分的,如果N=13,那么N/10=1

当你输入小于0的N时,它不满足WHILE条件,所以一次都不循环

当你输入大于0的N时,它才开始循环,一旦N小于10了,它就跳出循环了

因为N小于10,那腔姿么它除以10的结果的整数部分一定为0,就不满足WHILE的条件了

现在懂了吗?

scanf( "%4c%4c", &c1, &c2 )

它的作用是滑迟派把你输入的前4个字符放入地址&c1, 再把旦陪后4个字符放入地址&c2

因为c1 c2本身都只占一个字节, 你放如4个字节, 会造成内存益处。 最后你可能看到正确结果, 也可能得到错误结果。。

比如输入

abcd7890

可能得到:(可能性不大信贺)

a 7

也可能得到:(最有可能)

8 7

(因为c1 c2是连续地址, 第二次把8放如了c1)

总之应避免这样使用scanf


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8223304.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存