标题:指针地址的问题
取消只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475656-1-1.html




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

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