-
为什么输出 4 5 6 7 8 9 9 8 7 6 int a[10] = ; 定义一个整数数组并初始化 int *p, *q; 定义两个整数指针 p = &a[0]; p 指向 a[0]。
q = &a[9];q 指向 A[9]。
for(int i=0;i<4;i++,p++,q--)for(int i=0;i<10;i++) 遍历输出阵列 cout
-
*p = *q;
这里是以后再说的。
a=如果要输出 4 5 6 7 8 9 9 8 7 6for(int i=0; i<6;i++)
cout
5;i--) cout
-
这个是这样的:
循环中有四个循环,分别是给 *p 分配一个新值,并且有 p++,所以只有 a[0]-a[3] 的四个值改变了值,而后一个不变,值仍然是 4 5 6 7 8 9
前四个值是这样的,a[0]=a[9]=9,a[1]=a[8]=8,a[2]=a[7]=7,a[3]=a[6]=6,然后输出a数组中的值,结果是9876456789。
-
你好,首先。
int *p, *q;
p = &a[0];
q = &a[9];
声明了两个整数指针,分别指向数组的第一个元素和最后一个元素;
for(int i=0;i<4;i++,p++,q--)
在这里,变量 i 的功能是控制循环数,这里是 4 个循环,每个循环,指针 p 要向后移动一个元素,指针 q 向前移动一个元素,p = *q 表示将 q 的值更改为分配给 p 的元素的值为元素的值。
第一个循环:将 9 分配给元素 0,使序列变为:9、1、2、3、4、5、6、7、8、9;
第二个循环:将 8 分配给元素 1,使序列变为:9、8、2、3、4、5、6、7、8、9;
第三个循环:将 7 分配给元素 2,使序列变为:9、8、7、3、4、5、6、7、8、9;
第四个循环:将 6 分配给元素 3,使序列变为:9、8、7、6、4、5、6、7、8、9;
-
for(int i=0;i<4;i++、p++、q--)初始顺序为:0,1,2,3,4,5,6,7,8,9执行程序:将q指针指向的数字分配给p指针指向的数字,然后p++(后移),q--(向前移动)。
我被分配了 4 次,从零到 3。 即:9 赋值 0,8 赋值 1,7 赋值 2,6 赋值 3,所以结果是 9 8 7 6 4 5 6 7 8 9
-
如果要在循环中交换,则可以少一个中间更改。 当前语句的功能是将 a9 a8 a7 a6 分配给 a0 a1 a2 a3,但您没有将 a0 a1 a2 a3 分配给 a9 a8 a7 a6,因此输出是第一个结果。 要实现切换功能,可以单独设置 int b。
第一个循环中的语句改为 b=*p; *p=*q;*q=b;
-
意思很简单,就是从 i=0 开始,将 q 指向的元素赋值给 p 指向的元素,i=0 是将 9 赋值为 0,然后 i=1 赋值 8 赋值 1,依此类推。
这样可以解决问题:
将 6 个数字分成 3 组,每组 2 个数字,那么每组必须有大号和小号,把小的放在第一行,大的放在第二行,这样问题的答案就是: >>>More