鱼C论坛

 找回密码
 立即注册
查看: 1509|回复: 7

新手求解

[复制链接]
发表于 2016-3-10 13:57:46 | 显示全部楼层 |阅读模式

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

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

x
#include<iostream>
using namespace std;
int main()
{
int m[5],n[5],*px,*py,k;
px=m;py=n;
  for(k=1;k<4;k++,px++,py++)
  {
          *px=k;
          *py=2*k;
      cout<<m[k-1]<<" "<<n[k-1]<<endl;
  }
  //上面的可以看出来答案是  1 2
   //                       2 4
     //                     3 6
  //下面就不懂了
  px=&m[1];
  py=&n[1];
  for(k=1;k<3;k++)
  {
  *px+=k;
  *py*=k;
  cout<<*px++<<" "<<*py++<<endl;
  }
  return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-3-10 14:42:57 | 显示全部楼层
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-12 11:38:11 | 显示全部楼层
linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...

请详细点可以吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-12 11:39:59 | 显示全部楼层
linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...

“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针”
理解不了,求一下具体过程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-12 11:40:47 | 显示全部楼层
linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...

“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针”


理解不了,求一下具体过程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-13 12:15:10 | 显示全部楼层
十天一刻 发表于 2016-3-12 11:40
“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的 ...
//上面的可以看出来答案是  1 2
        //                       2 4 
        //                     3 6
        //下面就不懂了
        //此时的数组情况:m前三个为:1,2,3
        //                                 n为:2,4,6
        px = &m[1];                //将px指向数组m的第二个元素即2的地址
        py = &n[1];                //将py指向数组n的第二个元素即4的地址
        for (k = 1; k<3; k++)
        {
                *px += k;                // *px = *px + k        第一次循环执行:*px = 3, m[1] = 3                
                *py *= k;                // *py = *py * k        第一次循环执行:*py = 4, n[1] = 4
                cout << *px++ << " " << *py++ << endl;  //++的优先级高于*所以先++,由于++后置,所以带入原有的px值进行解引用计算即输出3,4,
                                                                                                //然后px,py分别向后移动一个位置指向两个数组的第三个元素即3和6,
                                                                                                //重复一次循环就可以得出第二次输出为*px = 3+2 = 5,*py = 6*2 = 12
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 12:32:13 | 显示全部楼层

懂了,第一次循环输出3,4;然后将下一个元素3,6带入二次循环;接着输出5,12;将M(3),N(3)带入;不成立,结束。

谢谢指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-14 12:33:45 | 显示全部楼层

懂了,第一次循环输出3,4;然后将下一个元素3,6带入二次循环;接着输出5,12;将M(3),N(3)带入;不成立,结束。

谢谢指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 20:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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