// 課題05 配列を逆順に
/* //Cプログラム
#include<stdio.h>
#define SIZE 5
int main(void) {
int src[SIZE] = { 1, 5, 4, 9, 6 };
int dst[SIZE];
int i;
int *psrc = src;
int *pdst = dst;
for(i=0;i<SIZE;i++) {
*(pdst+i) = *(psrc+SIZE-i-1);
}
int n;
printf("dst=[ ");
for(n = 0; n < SIZE; n++) {
printf("%d ", dst[n]);
}
printf("]\n");
return 0;
}
//実行例
# ./exer05
dst=[ 6 9 4 5 1 ]
*/
public class Exer05 {
public static final int SIZE = 5;
public static void main(String[] args) {
int[] src = {1, 5, 4, 9, 6};
int[] dst = new int[SIZE];
// Javaでは,ポインタ(間接演算子やアドレス演算子)が使えないので,
// 配列の添え字を使って,課題を解くことになる
int i;
for (i = 0; i < SIZE; i++) {
dst[i] = src[SIZE - i - 1];
}
// i[dst]などもできない.アドレスに触れるような処理は隠蔽され不可能になっている.
// 隠蔽の理由は,アドレスの誤処理によりプログラムが壊れること等を防ぐため.
int n;
System.out.printf("dst=[ ");
for (n = 0; n < SIZE; n++) {
System.out.printf("%d ", dst[n]);
}
System.out.printf("]\n");
}
}