#include <stdio.h> int main(void) { int a[10], b[10], *pa, *pb, i; pa = a; pb = b; for( i = 0; i < 3; i++, pa++, pb++){ *pa = i; *pb = 2*i; } pa = &a[0]; pb = &b[0]; for ( i = 0; i < 3; i++, pa++, pb++){ *pa = *pa + i; *pb = *pb + i; } printf("%d %d", *--pa, *--pb); /* 输出的数字之间有一个空格 */ return 0; }详细解释其输出结果
时间: 2024-03-04 16:53:11 浏览: 153
C语言程序填空题及答案.doc
这段代码的输出结果是 "5 7",其中第一个数字是数组 a 的最后一个元素经过加操作后的值,第二个数字是数组 b 的最后一个元素经过加操作后的值。
代码中首先定义了两个数组 a 和 b,以及两个指针 pa 和 pb,初始时将指针 pa 和 pb 分别指向数组 a 和 b 的第一个元素。
接着进入一个循环,循环次数为 3,每次循环将指针 pa 和 pb 分别移动一位,并分别给数组 a 和 b 赋值。其中 a[i] 被赋值为 i,b[i] 被赋值为 2*i。
然后重新将指针 pa 和 pb 分别指向数组 a 和 b 的第一个元素,再进入另一个循环,循环次数同样为 3,每次循环将指针 pa 和 pb 分别移动一位,并分别对数组 a 和 b 的元素进行加操作。其中 *pa + i 将数组 a 的每个元素加上它的下标 i,*pb + i 将数组 b 的每个元素加上它的下标 i。
最后通过 --pa 和 --pb 将指针 pa 和 pb 分别指向数组 a 和 b 的最后一个元素,再输出它们的值,即为 "5 7"。
阅读全文