鱼C论坛

 找回密码
 立即注册
查看: 1733|回复: 6

[已解决]用指针调换数组里面的数有些疑惑

[复制链接]
发表于 2018-9-12 11:13:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

不明白这样为什么不行,求解答!!
#include<stdio.h>//数组变量调换

int main()
{
    int a[10];
    int i,n,*p;
    for(i=0;i<10;i++)
    {
    scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++)
    {
    printf("%d",a[i]);
    }
    printf("\n");
    p = a;
    for(n=10;n>=1;n--)
    {
    printf("%d",*(p+i));
    }
    printf("\n");
    return 0;
}
最佳答案
2018-9-12 11:52:55
czj1016130386 发表于 2018-9-12 11:43
我那个p+i其实是p+n粗心打错了,p = &a[0];   这样*(p+n)的地址是直接指向a[n]的吗,我的想法就是直接输 ...

9 而已,越界了。p = a; 是可以的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-12 11:22:08 | 显示全部楼层
数组名a不是首地址,你这样赋值
p = &a[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 11:24:28 | 显示全部楼层
#include<stdio.h>//数组变量调换  // ?这是输入输出的头文件

int main()
{
    int a[10];
    int i,n,*p;
    for(i=0;i<10;i++)
    {
    scanf("%d",&a[i]);                //输入资料
    }
    for(i=0;i<10;i++)
    {
    printf("%d",a[i]);                //输出资料
    }
    printf("\n");
    p = a;
    for(n=10;n>=1;n--)
    {
    printf("%d",*(p+i));        //参数不一样……而且这个跟调换差远了~
    }
    printf("\n");
    return 0;
}

void swap(int &x, int &y)        //像这样
{
    int temp;
    temp = x;
    x = y;
    y = temp;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-12 11:43:05 | 显示全部楼层
claws0n 发表于 2018-9-12 11:24
#include//数组变量调换  // ?这是输入输出的头文件

int main()

我那个p+i其实是p+n粗心打错了,p = &a[0];   这样*(p+n)的地址是直接指向a[n]的吗,我的想法就是直接输出最后一个然后一个个往上输,这样就跟调换的结果一样了,但把i改为n还是不对,不知道哪里出现问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 11:52:55 | 显示全部楼层    本楼为最佳答案   
czj1016130386 发表于 2018-9-12 11:43
我那个p+i其实是p+n粗心打错了,p = &a[0];   这样*(p+n)的地址是直接指向a[n]的吗,我的想法就是直接输 ...

9 而已,越界了。p = a; 是可以的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-12 12:01:54 | 显示全部楼层
claws0n 发表于 2018-9-12 11:52
9 而已,越界了。p = a; 是可以的。

谢谢了,发现这个是低级错误,犯糊涂啊!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 12:33:58 | 显示全部楼层
兄弟  你这个并没有实现数组数据的调换,只是对数组逆向输出.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 09:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表