| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3219 人关注过本帖
标题:关于printf函数.大家请看看.............
取消只看楼主 加入收藏
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
 问题点数:0 回复次数:8 
关于printf函数.大家请看看.............
今天偶尔看到这么个程序:
#include <stdio.h>

char  *test(char *p)
{
    int i;
    char a[100]="I love you!";
    p=a;
    printf("%s\n",p);
    return(p);
}
int main(void)
{
    char *p, *q;
    p="there is a example";
    q=test(p);
    printf("\n截后的串为:%s\n",q);
    return 0;
}

如果这样运行,程序会输出两个"I love you!";
但是,如果你把test函数里面的printf语句注释掉,那么程序将会输出乱码.

我大胆作了个猜测如下:
如果你不加printf在test里面,那么由于在test函数运行期间,a有定义,而在其结束之后,a将是未定义的,所以p也就是未定义的,亦即返回值是未定义的,所以,主函数会输出乱码.
如果你加printf在test里面,由于prinitf叫做"格式化输出语句",所以我想,问题是不是"格式化"引起的.因为格式化,所以printf会按%s,也就是字符串的格式来格式p,在该语句执行之后,p就变成了一个字符串,而返回值也就变成了指向该字符串的首地址.所以主函数会正确运行.

各位,兄弟我也是个新手,不知道所作的猜测是否正确.所以,请各位明白该问题的指教,谢谢!!!!!

就当作是对一个新手的支持!!!!!!!!!!!
搜索更多相关主题的帖子: printf 函数 
2008-05-13 13:41
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
为什么没有人回阿???帮忙看看阿!!!!!

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-13 14:37
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
呵呵,看来这个问题很头痛阿,先谢谢极光,咱们继续等待高手........

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-13 15:45
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
我失望了。。。。。

论坛里面的高手呢???能不能回答一下阿???

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-14 09:59
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
还是不太明白。。。。。。

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-14 10:48
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
算了吧,俗话说得好,"求人不如求己".我不知道答案的原因是我的基础知识学得还很烂.
不过我会自己找出答案来的.学好基础就行,我相信.

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-14 11:19
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
谢谢各位,有个牛人看过这个汇编了,和夜火说的差不多,谢谢各位哦还是要

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-15 23:03
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
好的,谢谢!!

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-16 09:29
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
本来对这个帖子快失去信心了,不过今天偶尔来看,发现两位居然回复了这么多.......
谢谢你们的支持!!!!!!

继续关注哦!!不过我也得好好学习了!!

前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-05-17 11:06
快速回复:关于printf函数.大家请看看.............
数据加载中...
 
   



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

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