已有变量定义和函数调用语句,
1
2
int a=25;
print_value(&a);
则下面函数的正确输出结果是__。
1
2
3
4
void print_value(int* x)
{
printf(“%x\n”,++*x);
}
答案:
1a
原因:
1考察运算符的优先级,* 的优先级要比++高,*x = 25;之后由于是先++ 再输出,所以应该输出十进制的26。
2考察printf的输出格式问题,好多时候习惯性输出十进制,但是这道题中很明显是“%x”,即十六进制,所以是 【1a】。
假如题目中变为 printf(“%x\n”,*x++); 应该输出 【19】,也就是十进制【25】