| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:大家帮我看看
只看楼主 加入收藏
apiqqz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:56
专家分:25
注 册:2011-9-2
收藏
得分:0 
回复 10楼 莫丶
那如果将语句改为  main()
                     {  char  str[10];
                          int i=0;
                            for( ; i< =9;i++)
                             str[i]=i;
                             printf("%d",str);
                       }
这样应该不会出现乱码吧?
                           
                           
















2011-09-02 23:12
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
收藏
得分:0 
回复 11楼 apiqqz
会 如果改成           char  str[10];
                       char c='a';
                       str[10]='\0';
                          int i=0;
                            for( ; i<=9;i++)
                             str[i]=c++;
                             printf("%s",str);
就不会出现乱码  ,printf()函数的输出是由格式化控制符来控制的,它本身不知道你要输出的是什么类型的数据,所以这个函数设计为能够使printf()得知应该知道你输出的是哪种类型的数据,因此而设立一个标志。就如你要输出一个字符串,那么你在格式化的时候应加上"%s”,对应的输出表列中就应该为字符串的首地址,那么它就将首地址所指向的这个字符串依次以单个字符输出,直到遇到0为止。
   
2011-09-02 23:31
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
回复 3楼 A13433758072
对于局部变量,一般是不会自动初始化为0的
2011-09-02 23:35
apiqqz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:56
专家分:25
注 册:2011-9-2
收藏
得分:0 
回复 12楼 莫丶
原来二楼错了啊,数组不会自从初始化为0啊,谢谢啊。小弟去年在学校接触的编程,开始是VB,学的不错,后来自己又自学了一点汇编,现在开始学习C语言。自从学习了编程就不能自拔,凡事都想弄个明白,不好意思这么晚还在这里发帖,打扰了你休息,最后问下,能不能加你为好友啊
2011-09-02 23:49
apiqqz
Rank: 2
等 级:论坛游民
威 望:2
帖 子:56
专家分:25
注 册:2011-9-2
收藏
得分:0 
回复 13楼 czsbc
谢谢啊,果然一针见血,知道问题出在哪里,good night
2011-09-02 23:50
快速回复:大家帮我看看
数据加载中...
 
   



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

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