问题
单项选择题
有以下程序:
#include <stdio.h>
main( )
char s[ ] ="159" , * p;
p=s;
printf( "% c", * p + + );
printf("%~", * p++);程序运行后的输出结果是( )。
A.15
B.16
C.12
D.59
答案
参考答案:A
解析: 语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。