| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1161 人关注过本帖
标题:指针指到我不行了
只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:3 
嗯,知道就好

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-30 10:19
a151937404
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:117
注 册:2010-6-11
收藏
得分:3 
p++我感觉是只执行了一次,第一次过后就为空了。
2010-07-30 11:12
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:3 
回复 2楼 do8do8do8
二楼说的有问题,p++并不是str的地址加上sizeof(char)*10,而是加4,就是4个字节,大家都知道,char型指针占用空间就是4个字节,试验为证:
main()
{
    int i,j,k;
    char *str[10]={"china","japan","yemem","pakistan","mexico","korea","brazil","iceland","canda","mongolia"};
   char **p;
    for(p=str;p-str<10;p++)
        printf("%d  p=%d,str=%d\n",p-str,p,str);
    getch();
}
 
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-07-30 11:21
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:0 
回复 3楼 erikyo
3楼程序也有点小错误,并不能得到正确结果,改了下
# include <stdio.h>
# include <string.h>

int main()
{
    int i,j,k;
    char *str[10]={"china","japan","yemem","pakistan","mexico","korea","brazil","iceland","canda","mongolia"};
    char *t = NULL;

    for (i = 0 ; i < 9 ; i++)
    {
        k = i;
        for(j = i+1 ; j < 10 ; j++)
            if(strcmp(str[i],str[j]) > 0)/*比str[i]小的置换下标,但比str[i]小的可能有很多项,k的最终值为最后一个
            k = j;             与之比较为真的项的下标,并不一定是最小的,应改为strcmp(str[k],str[j])>0*/
        t = str[i];
        str[i] = str[k];
        str[k] = t;

    }


    for(i =0 ; i <10 ; i++)
        printf("%s\n",str[i]);

    getch();
}
2010-07-30 11:40
快速回复:指针指到我不行了
数据加载中...
 
   



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

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