| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:有关指针的问题,有些搞混了,看一下是怎样运行的,还有为什么电脑没有运行 ...
只看楼主 加入收藏
心雨123aa
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:55
专家分:38
注 册:2010-3-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
有关指针的问题,有些搞混了,看一下是怎样运行的,还有为什么电脑没有运行结果
#include<stdio.h>
#include<string.h>
fun(char *w,int n)
{
    char t,*s1,*s2;
    s1=w; s2=w+n-1;
    while(s1<s2)
    {
        t=*s1++;*s2--;*s2=t;
    }
}
main()
{
    char *p;
    p="1234567";
    fun(p,strlen(p));
    puts(p);
}
搜索更多相关主题的帖子: 结果 运行 指针 
2010-03-30 22:54
赤那
Rank: 3Rank: 3
来 自:广东
等 级:论坛游侠
威 望:1
帖 子:127
专家分:178
注 册:2010-3-1
收藏
得分:6 
#include<stdio.h>
#include<string.h>
fun(char *w,int n)
{
    char t,*s1,*s2;
    s1=w; s2=w+n;
    while(s1<s2)
    {
        t=*s1++;*s2--;*s2=t;
    }
}
main()
{
    char p[]="1234567",*r;
    r=p;        //"1234567"的地址不确定,不能直接赋值给指针
    fun(p,strlen(p));
    puts(p);
}
2010-03-30 23:30
心雨123aa
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:55
专家分:38
注 册:2010-3-28
收藏
得分:0 
回复 2楼 赤那
我不明白它的运行过程,为什么运行结果是:1233217
2010-03-31 01:41
地狱无明火
Rank: 2
等 级:论坛游民
帖 子:62
专家分:71
注 册:2009-6-11
收藏
得分:14 
我运行的结果是1234321
程序代码:
void fun(char *w, int n)
{
    char t,*s1,*s2;
    s1 = w;
    s2 = w + n;//s2指向p[p+strlen(p)]=p[7]

    while(s1 < s2)
    {
        t = *s1++; //先执行t = *s1 = 1, 然后s1++指向p[1]
        *s2--; //因为s2指向p[p+strlen(p)]=p[7],p[7]是\0,所以这里执行s2--指向p[6],无需写*也行
        *s2 = t; //执行更改p[6] = t = 1
    }
}


第二次 while循环(s1 = p[1], s2 = p[6])
程序代码:
    while(s1 < s2)
    {
        t = *s1++; //先执行t = *s1 = 2, 然后s1++指向p[2]
        *s2--; //执行s2--指向p[5]
        *s2 = t; //执行更改p[5] = t = 2
    }


第三次 while循环(s1 = p[2], s2 = p[5])
程序代码:
    while(s1 < s2)
    {
        t = *s1++; //先执行t = *s1 = 3, 然后s1++指向p[3]
        *s2--; //执行s2--指向p[4]
        *s2 = t; //执行更改p[4] = t = 3
    }


第四次 while循环(s1 = p[3], s2 = p[4])
程序代码:
    while(s1 < s2)
    {
        t = *s1++; //先执行t = *s1 = 4, 然后s1++指向p[4]
        *s2--; //执行s2--指向p[3]
        *s2 = t; //执行更改p[3] = t = 4
    }


第五次 while循环不成立(s1 = p[4], s2 = p[3])
所以main函数的p[6],p[5],p[4],p[3]被篡改
2010-03-31 05:17
心雨123aa
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:55
专家分:38
注 册:2010-3-28
收藏
得分:0 
回复 4楼 地狱无明火
thanks  I get it!!
2010-03-31 21:04
快速回复:有关指针的问题,有些搞混了,看一下是怎样运行的,还有为什么电脑没有 ...
数据加载中...
 
   



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

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