誰でも次のコードを完全に説明できますか?
#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
*(a+i)
1) for ループでのみ値が割り当てられている場合、ポインター 's' はどのように値を出力していますか?
*(a+i)
2)が割り当てられたときに、値は正確にどこに保存されますか?
*s++
3) 、(*s)++
、*++s
、の違いは何++*s
ですか?
4) s に似たポインターを出力すると、値が 1 増えるのはなぜですか?
前もって感謝します !:)