任何人都可以請完整解釋下面的代碼嗎?指針前/後增量
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *a, *s, i;
a = s = (int *) malloc(4 * sizeof(int));
for (i = 0; i < 4; i++)
{
*(a + i) = i * 10;
printf(" %d ", *(a + i));
}
printf("\n");
printf("%d\n", *s++);
printf("%d\n", (*s)++);
printf("%d\n", *s);
printf("%d\n", *++s);
printf("%d\n", ++*s);
printf("\n");
printf("%d\n", *a++);
printf("%d\n", (*a)++);
printf("%d\n", *a);
printf("%d\n", *++a);
printf("%d\n", ++*a);
return 0;
}
輸出:
0 10 20 30
0
10
11
20
21
0
11
12
21
22
1)如何指針 'S' 正在打印值,其中僅*(a+i)
被分配在 的值循環?
2)當*(a+i)
被分配時,該值在哪裏準確存儲?
3)*s++
,(*s)++
,*++s
,++*s
有什麼區別?
4)爲什麼值增加1時,我打印指針類似於s?
在此先感謝! :)
需要'家庭作業'標籤嗎? –
請在詢問之前搜索網站。基本上同樣的問題已經有很多問題了。 –
這些都是重要的問題,不應該被拒之門外 –