→ Rainsheep:題目是 *(q+i)=i 所以是543345沒錯 61.31.32.71 07/12
4.(10%)What does the following program print?
#define N 6
main(){
int i;
int a[N];
int *p, *q;
p = &a[N-1];
q = p-(N-1);
for(i = 0;i<N;i++){
*(p-i) = i;
*(q+1) = i;
}
for(i = 0;i<N;i++){
printf("%d", a[i]);
}
printf("\n");
============================
想請問 q = p-(N-1) 這個意義是什麼?
我以為是將q→a[0],但是我在轉學板看見有人po的補習班解答是:
========某補習班解答========
【解答】
p = &a[N-1]; → 令p指向a[5]
q = p-(N-1); → 令q指向a[5]
for(i = 0;i<N;i++){
*(p-i) = i; → 依序存入:a[5]←0, a[4]←1, a[3]←2,
a[2]←3, a[1]←4, a[0]←5
*(q+1) = i; → 依序存入:a[1]←0, a[1]←1, a[1]←2,
a[1]←3, a[1]←4, a[1]←5
}
for(i = 0;i<N;i++){
printf("%d", a[i]) → 依序列印:a[0], a[1], a[2],
a[3], a[4], a[5]
故輸出為:5 5 3 2 1 0
=====答案不是543345?======
金笛給643345
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.130.168