十天一刻 发表于 2016-3-10 13:57:46

新手求解

#include<iostream>
using namespace std;
int main()
{
int m,n,*px,*py,k;
px=m;py=n;
for(k=1;k<4;k++,px++,py++)
{
          *px=k;
          *py=2*k;
      cout<<m<<" "<<n<<endl;
}
//上面的可以看出来答案是1 2
   //                     2 4
   //                     3 6
//下面就不懂了
px=&m;
py=&n;
for(k=1;k<3;k++)
{
*px+=k;
*py*=k;
cout<<*px++<<" "<<*py++<<endl;
}
return 0;
}

linxingcs 发表于 2016-3-10 14:42:57

下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针

十天一刻 发表于 2016-3-12 11:38:11

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

请详细点可以吗

十天一刻 发表于 2016-3-12 11:39:59

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

“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针”
理解不了,求一下具体过程

十天一刻 发表于 2016-3-12 11:40:47

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

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


理解不了,求一下具体过程

linxingcs 发表于 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;                //将px指向数组m的第二个元素即2的地址
        py = &n;                //将py指向数组n的第二个元素即4的地址
        for (k = 1; k<3; k++)
        {
                *px += k;                // *px = *px + k        第一次循环执行:*px = 3, m = 3               
                *py *= k;                // *py = *py * k        第一次循环执行:*py = 4, n = 4
                cout << *px++ << " " << *py++ << endl;//++的优先级高于*所以先++,由于++后置,所以带入原有的px值进行解引用计算即输出3,4,
                                                                                                //然后px,py分别向后移动一个位置指向两个数组的第三个元素即3和6,
                                                                                                //重复一次循环就可以得出第二次输出为*px = 3+2 = 5,*py = 6*2 = 12
        }

十天一刻 发表于 2016-3-14 12:32:13

linxingcs 发表于 2016-3-13 12:15


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

谢谢指导

十天一刻 发表于 2016-3-14 12:33:45

linxingcs 发表于 2016-3-13 12:15


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

谢谢指导
页: [1]
查看完整版本: 新手求解