谁能完整解释以下代码?
#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)
仅在for循环中分配值?
2) 赋值时值在哪里准确存储和存储*(a+i)
?
*s++
3) , (*s)++
, *++s
,之间有什么区别++*s
?
4) 为什么当我打印类似于 s 的指针时,值会增加 1?
提前致谢 !:)