有以下程序: #include <stdio.h> main( ) { char s[ ] ="159" , * p; p=s; printf( "% c", * p + + ); printf("%~", * p++)

admin2009-01-15  30

问题 有以下程序:     #include <stdio.h>     main( ) {  char s[ ] ="159" , * p;    p=s;    printf( "% c", * p + + );    printf("%~", * p++);}程序运行后的输出结果是(    )。

选项 A、15
B、16
C、12
D、59

答案1

解析 语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。
转载请注明原文地址:https://kaotiyun.com/show/xzXp777K
0

最新回复(0)