首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

新手关于putchar()的有关问题

2013-01-11 
新手求助关于putchar()的问题。1.putchar() 只输出字符,但如果putchar(abc)为什么会显示abc中的最后一个c呢

新手求助关于putchar()的问题。
1.putchar() 只输出字符,但如果putchar(abc)为什么会显示abc中的最后一个c呢,为什么不是a?
2.还有putchar()可不可以输出数字
[解决办法]
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E

[解决办法]
putchar('abc');执行时,将a、b、c压栈,然后在取值显示——只取一个字符,故取到c输出。
[解决办法]
1、我想你要输出的应该是

putchar('abc');
对于这个原因,可参考《C陷阱与缺陷》整型数(一般为16位或32为)的存储空间可以容纳多个字符(一般为8位),因此有C编译器允许在一个字符常量(以及字符串常量)中包括多个字符。也就是说,用'yes'代替"yes"不会被该编译器检测到。后者的含义是“一次包括'y''e''s'以及空字符''的4个连续内存单元的首地址“。前者的含义并没有准确的进行定义,但大多数编译器理解为,“一个整数值,由'y''e''s'所代表的整数值按照特定编译器实现中定义的方式组合得到“。   (注:在Borland C++ v5.5 和 LCC v3.6中采取的做法是,忽略多余的字符,最后的整数值即第一个字符的整数值;而在Visual C++ 6.0 和 GCC v2.95中采取的做法是,依次用后一个字符覆盖前一个字符,最后得到的整数值即最后一个字符的整数值。)
2、int putchar(int)这个函数是用来进行字符输出的,是没办法输出数字,但是是可以输出数字字符的。

热点排行