题目
指针遍历数组并打印
思路
本题用指针从首到尾遍历数组并打印每个元素(与 a[i] 等价)。
p initially 指向 a[0],每轮输出 *p 再 p++;或用 while (p<a+n) 控制不越界。
解题分析
数组名在表达式中退化为首元素指针,p<a+n 与下标等价。指针递增比 a[i] 写法更贴近 C 底层,别越过 a+n。
完整程序
#include <stdio.h>
int main(void)
{
int n, a[200];
if (scanf("%d", &n) != 1 || n < 1 || n > 200) {
return 1;
}
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for (int *p = a; p < a + n; p++) {
printf("%d ", *p);
}
putchar('\n');
return 0;
}
运行示例
输入:
3
10 20 30输出:
10 20 30