| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5676 人关注过本帖
标题:万恶的指针(1)...
取消只看楼主 加入收藏
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
结帖率:97.3%
收藏
已结贴  问题点数:5 回复次数:6 
万恶的指针(1)...
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
                                                    //这个程序主要功能是输入 如  "huieoqjalf" 连续的字母排序。

    void sort(char *,int);

    int input_sum = 0;
    char *p = (char *)malloc(sizeof(char) * 100);

    do
        {
            scanf ("%s",p);
            input_sum = strlen(p);
        }
    while (getchar() != '\n');

    realloc(p,input_sum);

    sort (p,input_sum);

    return 0;
}

void sort(char *p,int input_sum)

{

    int i,j;

    char *temp;

    for(j = 0;j < input_sum;j++)
        {
            for (i = 0;i < input_sum - j - 1;i++)
                if (*(p+i) > *(p+i+1))
                    {
                        temp = *(p + i);            //同类型的指针赋值
                        *(p + i) = *(p + i + 1);    //42,44行有提醒。求解。

  /*                       /main.c||In function ‘sort’:|
/main.c|42|warning: assignment makes pointer from integer without a cast [enabled by default]|        分配整数赋给指针,未作类型转换 ,相同类型还转?怎么转。。。
/main.c|44|warning: assignment makes integer from pointer without a cast [enabled by default]|        指针赋给整数,未作类型转换?
/main.c||In function ‘main’:|
/main.c|22|warning: ignoring return value of ‘realloc’, declared with attribute warn_unused_result [-Wunused-result]|      这句也不理解
||=== Build finished: 0 errors, 3 warnings ===|  
*/

                        *(p+i+1) = temp;            //这个程序还有什么可以改的地方吗,请指教
                    }

        }

    for (i = 0;i < input_sum;i++)

        printf ("%c",*(p+i));

}
搜索更多相关主题的帖子: void include return 
2012-08-22 09:58
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
temp = *(p + i);     *(p+i+1) = temp;    这两个,temp是指针,你怎么能将值付给指针呢
这样写也不报错呀

为什么要给temp分配空间呢,temp只是一个中转的指针啊


总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 10:36
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
回复 3楼 zklhp
好吧,是万恶的我

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 10:43
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
回复 6楼 zklhp
可是那样写不报错

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 10:44
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
程序代码:
void sort(char *p,int input_sum)

{

    int i,j;

//    char *temp = (char *)malloc(sizeof(char));            //还是不明白为什么要分配空间
    char temp;

    for(j = 0;j < input_sum;j++)
        {
            for (i = 0;i < input_sum - j - 1;i++)
                if (*(p+i) > *(p+i+1))
                    {
                        temp = *(p + i);
                        *(p + i) = *(p + i + 1);
                        *(p+i+1) = temp;                //这样写简单哈...
                    }

        }

    for (i = 0;i < input_sum;i++)

        printf ("%c",*(p+i));

}

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 10:45
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
哦,懂了, 定义的指针如果不指向点什么就用的话是不好的。。。

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 13:05
admin_xyz
Rank: 2
等 级:论坛游民
帖 子:195
专家分:77
注 册:2012-6-24
收藏
得分:0 
回复 11楼 TonyDeng
总是用的时候糊涂。。

总有人比你努力,可怕的是比你牛的人比你还努力。
2012-08-22 13:05
快速回复:万恶的指针(1)...
数据加载中...
 
   



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

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