| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:指针地址的问题
取消只看楼主 加入收藏
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
结帖率:97.5%
收藏
已结贴  问题点数:20 回复次数:0 
指针地址的问题
问题在代码红色区域!!!
#include<stdio.h>
#include<string.h>
int main()
{
    void input (int *num);
    void value (int *num);
    void output (int *num);
    int number[10];
    input (number);
    value (number);
    output (number);
    return 0;
}

void input (int *num)
{
    int i;
    for (i=0; i < 10; i++)
    scanf("%d", &num[i]);
}

void value (int *num)
{
    int *max, *min, temp, *p;
    max = min = p = num;   让p存放num指针的地址
    for (p; p < num + 10; p++)
    if (*min > *p)
    min = p;
    else if (*max < *p)
    max = p;
    if (max == num)
    max=min;
    temp = num[0];                进行交换的时候用p[0]就会存在问题。用num[0]就正确。开头不是把num指针的首地址赋给p指针了吗?用p[0]进行交换,难道只是改变的p指针的地址的值,num指针的地址没变化
    num[0] = *min;
    *min = temp;
    temp = num[9];
    num[9] = *max;
    *max = temp;
}

void output (int *num)
{
    int *p;
    for (p = num; p< num+10; p++)
    printf("%d ",*p);
}
搜索更多相关主题的帖子: include number return 
2017-03-30 14:56
快速回复:指针地址的问题
数据加载中...
 
   



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

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