题目
从标准输入读入 n 个整数存入数组,使用指针移动(指针自增 *p++)的方式遍历数组并依次打印各元素。
输入格式:第一行输入整数个数 n;第二行输入 n 个整数。
输出格式:在一行中输出所有数组元素,每个数字后跟空格,末尾换行。
数据范围与约定:1 ≤ n ≤ 200。
思路与算法
1. 数组名与指针退化
在 Java 语言中,数组名 a 在表达式中会自动退化为指向首元素的指针 &a[0]。
2. 指针算术运算
声明指针 int[]p = a;,指针循环终止边界为 p < a + n。每次循环打印 *p 并递增 p++,移动步长由类型 sizeof(int) 决定。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
// 使用下标移动模拟指针逐项遍历数组
for (int p = 0; p < n; p++) {
System.out.print(a[p] + (p + 1 < n ? " " : "\n"));
}
}
}运行示例
输入:
3
10 20 30输出:
10 20 30