| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 676 人关注过本帖
标题:我知道 putchar 输出的是单个字符,但是为什么 putchar("\n")不报错,还输出 ...
只看楼主 加入收藏
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
我知道 putchar 输出的是单个字符,但是为什么 putchar("\n")不报错,还输出美元符号$ ?
如果乱给puts加参数的话,比如puts('\n'),程序就会报错。
但是为什么putchar("\n")不报错还输出$呢,putchar应该接受字符参数而不是字符串参数。而且$的ASCII码是36,怎么也跟\n的ASCII码10扯不上关系啊。
搜索更多相关主题的帖子: 字符串 而且 
2014-09-28 14:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
puts('\n') 是输出 0x0000000a 处的字符串,像这种低地址,一般是不允许ring3级访问的
而 putchar( "\n" ) 因为不知道 "\n" 的地址是多少,所以很难讲,你输出了'$',只是因为恰巧"\n"的地址最低位(假设little-endian)为36而已
2014-09-28 14:39
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
收藏
得分:0 
回复 2 楼 rjsp
好高深,我完全听不懂啊,给跪了
2014-09-28 14:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
回复 3 楼 muyoucumian
我在2楼失误了,应该将“(假设little-endian)”删掉,因为这和little-endian无任何关系

puts('\n') 就是 puts( (const char*)'\n' ),也就是 puts( (const char*)0x0A );
putchar("\n") 就是putchar( (char)"\n" ),你可以用 printf( "%p %hhx\n", "\n", (unsigned char)"\n" ) 看看"\n"的地址值,将这个地址值强制转化为char是多少
2014-09-28 15:08
muyoucumian
Rank: 3Rank: 3
等 级:等待验证会员
帖 子:80
专家分:126
注 册:2014-8-30
收藏
得分:0 
回复 4 楼 rjsp
我知道了,putchar和put后面括号里放上指针或者地址就行了,就输出地址处的东西。放上变量名的话,也是看这个变量的地址在哪,然后输出地址处的东西。

putchar("\n")等于putchar(36)等于putchar(ch),当char ch= '$';且ch的地址为36时就输出'$'。


[ 本帖最后由 muyoucumian 于 2014-9-28 16:02 编辑 ]
2014-09-28 15:58
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:0 
以下是引用muyoucumian在2014-9-28 14:48:51的发言:

好高深,我完全听不懂啊,给跪了


哈哈哈,囧rz
2014-10-01 23:32
九年
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-3-14
收藏
得分:0 
putchar(\n);
putchar(10);
这输出是什么啊
2020-03-14 11:57
快速回复:我知道 putchar 输出的是单个字符,但是为什么 putchar("\n")不报错, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015247 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved