好一个迷途小书童 2016-05-06 10:26 采纳率: 11.1%
浏览 1155

为什么 地址是一样的 ,但是用指针指过去的时候所得的值 是不一样的.求大神解答

#include
#include
int Cool(int m)
{
int array[20];
int i,j;
int k=1;
int l=0;
for(i=0;m!=1;i++,k++)
{

    for(j=2;j<=m;j++)
    {
        if(m%j==0)
        {

            array[k]=j;

            m=m/j;

            break;
        }
    }

}
//************经过我调试的结果 ,下面的程序 测试如下,然而地址  对应不上 
l=k;
array[0]=l-1;
//printf("他一共有%d个元素:",array[0]-1); 

for(i=0;i<k;i++)
{
    printf("\n********************\n%d ",&array[i]);
}
return array;//我要将数组传回去 

}
//**************看看是否接受到了
int main()
{
int m,n,k=0;
int Array[20];
int p,*p1,o,o1;
int array[20];
int i,j,k1=0;
int sum = 1;
int MinSum=0;
printf("please input the two values:\n");
scanf("%d%d",&m,&n);
//
*****************分别用两个数组接收一下,来测试下吧
//**************
o=m;
o1=n;
//************第一次运行的时候发现是循环条件有了些问题

printf("\n***************\n");

//p=array;
p=Cool(m);
array[0]=*p;

printf("************ %d *****",p);


printf("there are have %d 个",&array[0]);

p++;
//*************************************//下面的这个部分有问题了 
for(i=0;i<array[0];i++,p++)
{
    printf("%d ",p);//首先可以证明的一点是指针一定是连续的. ..我输出了下地址证明的确是连续的 
} 

//*****************

//****************下面这个要求的是最大公约数
/*for(i=0;i<k;i++)
{

    for(j=i;j<k1;j++)
    {
        if(array[i]==array1[j])
        {
            sum=sum*array[i];break;
        }
    }
} 
//**************这个是最大公约数的结果 
printf("\n*********\n%d:",sum);

MinSum=(o*o1)/sum;

printf("\n*********\n%d:",MinSum);

//接下来 我要求最小公倍数了 */
return 0;

}//我们只讨论指针的问题

  • 写回答

2条回答

  • 好一个迷途小书童 2016-05-06 10:30
    关注

    图片说明 为什么地址一样的 *p++ 和 array[20]求解的结果却不同却不同?

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名