新手求解
#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;
}
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针 linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...
请详细点可以吗
linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...
“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针”
理解不了,求一下具体过程 linxingcs 发表于 2016-3-10 14:42
下面就是把px和py又重新只想数组的第二个元素,然后在下面的循环中对数组的值进行赋值操作,上面的循环体是 ...
“然后在下面的循环中对数组的值进行赋值操作,上面的循环体是在k++后再移动指针,下面的是在循环体中的输入语句中移动指针”
理解不了,求一下具体过程 十天一刻 发表于 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
} linxingcs 发表于 2016-3-13 12:15
懂了,第一次循环输出3,4;然后将下一个元素3,6带入二次循环;接着输出5,12;将M(3),N(3)带入;不成立,结束。
谢谢指导
linxingcs 发表于 2016-3-13 12:15
懂了,第一次循环输出3,4;然后将下一个元素3,6带入二次循环;接着输出5,12;将M(3),N(3)带入;不成立,结束。
谢谢指导
页:
[1]