有以下程序 #include int fun( char *s ) { char *p=s; while (*p !=0 ) p++; return ( p-s ); } main() { printf( "%d\n", fun( "goodbey!"

admin2015-07-28  31

问题 有以下程序
#include
int fun( char *s )
{ char *p=s;
while (*p !=0 ) p++;
return ( p-s );
}
main()
{ printf( "%d\n", fun( "goodbey!" ) ); }
程序的输出结果是( )。

选项 A、8
B、6
C、0
D、7

答案A

解析 函数fun()中的while循环的逻辑是如果指针p没有到达字符串末端,则指针p一直向后移动。循环结束的时候,*p==?\0?,数组名s为一指针常量,始终指向字符数组的首地址,所以p-s则返回的是字符数组s中有的字符个数(不包含结束标识符),所以输出结果为8,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/0ei0FFFM
0

最新回复(0)