| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:帮忙分析一下程序的问题,怎么理解?
只看楼主 加入收藏
hiwo
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2008-10-16
结帖率:55.56%
收藏
 问题点数:0 回复次数:7 
帮忙分析一下程序的问题,怎么理解?
    #include <stdio.h>
    #include <string.h>

    void reverse_str(char * ch);

    int main(void)
    {
       char c[] = "Can you reverse me?";                  //当这里把char c[]改成char *s的时候结果就出错,是什么原因啊

       printf("original string c: %s\n", c);
       reverse_str(c);
       printf("reversed string after calling reverse_str: %s\n", c);
       return 0;
    }

    void reverse_str(char *ch)
    {
       int len;
       int i;
       char temp;
       len = strlen(ch)-1;
       for(i = 0; i < len-i; i++)
       {
             temp = ch[i];
             ch[i] = ch[len-i];
             ch[len-i] = temp;
       }
       ch[len+1] = 0;
    }


搜索更多相关主题的帖子: original calling include return 
2011-03-05 09:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
char c[] = "Can you reverse me?";
c[0] = 'x';
相当于
int a = 1;
a = 2;

char* c = "Can you reverse me?";
c[0] = 'x';
相当于
1 = 2;
2011-03-05 10:11
hiwo
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2008-10-16
收藏
得分:0 
回复 2楼 rjsp
能说的仔细点吗,不理解啊
2011-03-05 10:21
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
c[] 是数组,内容可以更改;

*c 是指针,指向一段字符常量,内容不可以更改。
2011-03-05 10:44
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
楼上正解

勤能补拙,熟能生巧!
2011-03-05 10:49
fangbinbin
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2011-1-29
收藏
得分:0 
我用turbo c for windows 3.0编译正常,并且运行的结果正确,但是用vc6.0编译能通过,但是运行时出错了
2011-03-05 11:50
lang2004
Rank: 2
等 级:论坛游民
帖 子:28
专家分:24
注 册:2011-1-9
收藏
得分:0 
不解释,我也不太懂,如果想找资料看下,
C Primer Plus(第五版) P287 "数组和指针的差别"
那里有一点点说明,自己看下,希望对你有帮助
2011-03-05 12:07
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:0 
关键的问题在于:
char *p = "abcdefg";
这里的"abcdefg"是常量,常量是不能赋值的,而你的程序是要修改这个里面的值的。
二楼已经说清楚了。
当然,不同的编译器对字符串常量的处理原则有些不同。我们接受就是了。

[ 本帖最后由 犬虫门心 于 2011-3-5 12:12 编辑 ]

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-03-05 12:11
快速回复:帮忙分析一下程序的问题,怎么理解?
数据加载中...
 
   



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

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