看板 TransCSI 關於我們 聯絡資訊
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
Rainsheep:題目是 *(q+i)=i 所以是543345沒錯 61.31.32.71 07/12