| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:菜鸟级别的问题:关于 char 输出
只看楼主 加入收藏
坚韧的菜鸟
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2014-7-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:16 
菜鸟级别的问题:关于 char 输出
代码如下、不明白的是
1.变量ch不是一个整体么?怎么输出却是输出%c、而不是ch呢?(我试过ch的、输出的是结果后面加一个h的、显然:h是多余的、)这个有点纳闷、
2.ch被定义了两次、第一次是b、第二次是e、输出的却是:e、那么定义b有什么用呢?
程序代码:
#include <stdio.h>
int main(void)
{
    char ch = 'A';
       ch ='b';
       ch ='e';
    printf("%c\n",ch);
    return 0;

}
搜索更多相关主题的帖子: color 
2014-08-17 21:32
坚韧的菜鸟
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2014-7-20
收藏
得分:0 
各位、不好意思了、字体有点小、将就的看一下的、小弟在这里给各位鞠躬道谢了~
2014-08-17 21:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
又是没看书写代码的吧

授人以渔,不授人以鱼。
2014-08-17 21:35
坚韧的菜鸟
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2014-7-20
收藏
得分:0 
回复 3 楼 TonyDeng
书写代码???
2014-08-17 21:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
没看书就写代码

授人以渔,不授人以鱼。
2014-08-17 21:36
坚韧的菜鸟
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2014-7-20
收藏
得分:0 
回复 3 楼 TonyDeng
哦哦、明白了、看书 写的代码?

不是的、看到郝斌老师那个讲解的例子、所以不明白了、研究了俩小时、各种代码、各种测啊、没办法了、之后来论坛提问看看的了、
后续教程还没有看的、所以忒深奥的不是很懂的、
2014-08-17 21:38
坚韧的菜鸟
Rank: 2
等 级:论坛游民
帖 子:29
专家分:29
注 册:2014-7-20
收藏
得分:0 
回复 5 楼 TonyDeng
版主啊、后面的还没有看的、就是看到他写的那个代码、拿过来研究了一下的、有点不明白了、还望指点一二、
2014-08-17 21:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
首先,你对ch这个变量赋值了三次,也就是反复刷写了三次,每次覆盖之前的赋值,所以ch变量最后储存的是'e'。其次,printf()的输出,是这个函数的特殊功能,编写这个函数的人,输出结果是根据"%c"来解释程序员希望输出一个字符的,这是一个约定的组合,函数只认识%c,不是认识%ch。printf()函数的输出,是用后面的变量ch的值替换前面格式字符串中的%c字眼,当你写"%ch"的时候,它由于只认%c,所以替换出来的结果就是eh,即把%c换成e,留下h。

最后提醒一下:printf()是用C编写好的现成函数,但它不是C语言的组成部分,这个函数的用法是它自己定义的,不是C语言定义的。也就是说,不要把学到printf()的用法当成是C语言的知识,不是的!

授人以渔,不授人以鱼。
2014-08-17 21:44
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
基本概念混乱

1.变量ch不是一个整体么?怎么输出却是输出%c、而不是ch呢?(我试过ch的、输出的是结果后面加一个h的、显然:h是多余的、)这个有点纳闷、
ch是变量名 %c是输出的格式符 这两者本身没关系 变量名也可以是b 也可以是c 也可以是alonglongnamethatsupported
2.ch被定义了两次、第一次是b、第二次是e、输出的却是:e、那么定义b有什么用呢?
定义一次 赋值两次

如果看视频不明白 建议看书 视频的特点是入门快 但具体看到要看书的 书上都讲了
2014-08-17 21:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
printf()函数并不直观,写出来难免出现误导性结果,你遇到的就是很典型的一种。%c、%s、%d这种约定的格式转义符,由于可能与后面的不转义符没有间隔,而让读者误以为能够凑成有意义的输出,当输出字符串中夹杂有\这样的转义字符时,尤其混乱,除非你很熟悉各种转义字符,否则很容易绕晕。C++改造过的输出语法,就比C的好一些,等你以后接触到别的语言时,自然能够感受到printf()/scanf()的简陋。不用太执着钻研这类专门函数的用法,更不要使用太复杂的用法,学基本的就够了。

授人以渔,不授人以鱼。
2014-08-17 21:54
快速回复:菜鸟级别的问题:关于 char 输出
数据加载中...
 
   



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

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