任何人都可以请完整解释下面的代码吗?指针前/后增量
#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?
在此先感谢! :)
需要'家庭作业'标签吗? –
请在询问之前搜索网站。基本上同样的问题已经有很多问题了。 –
这些都是重要的问题,不应该被拒之门外 –