考点:
- 函数printf()的执行机制:参数按照从右至左的顺序入栈,在调用时出栈;
- 考察运算符“++”在变量之前、变量之后的运算机制,即是先赋值/还是先自增
*(p++)、*(++p)、*(p+1)之间的区别
- 后面两项主要是考察:取值运算与自增运算的优先级;(自增运算>取值运算)
*p++与*(p++)——>没有区别
*++p与*(++p)——>没有区别
#include <stdio.h>
void fc1(int arr[])
{
//分别输出,预计输出6,7;实际输出6,7
int *p = arr;
printf("---fc1---\n");
printf("%d", *p);
printf("%d\n",*(++p));
}
void fc2(int arr[])
{
//同时输出,预计输出7,7;实际输出6,7
printf("---fc2---\n");
int *p = arr;
printf("%d,%d\n",*p, *(++p));
}
void fc3(int arr[])
{
//测试++p,与p++,预计输出6,6;实际输出6,6
int *p = arr;
printf("---fc3---\n&