作者Elfiend (小孩)
看板TransCSI
标题[考古] 台大92 第四题 程式
时间Tue Jul 12 21:13:04 2005
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
1F:→ Rainsheep:题目是 *(q+i)=i 所以是543345没错 61.31.32.71 07/12