有以下程序 #include <stdio.h> int fun(char *s) { char *p=s; while( *p++ != ’\0’); return(p-s);

admin2021-07-09  18

问题 有以下程序
     #include <stdio.h>
     int fun(char *s)
     {  char *p=s;
         while( *p++ != ’\0’);
         return(p-s);
     }
     main()
     {   char *p="01234";
          printf("%d\n",fun(p));
     }  
程序的运行结果是

选项 A、6
B、5
C、4
D、3

答案A

解析 程序执行过程为:定义字符串指针p并为其初始化为"01234",调用函数fun(p),将指针传入函数。while循环找到字符串的束符地址,然后使这个指针指向结束符下一个单元,结束循环。返回字符串首地址与结束符下一个地址之差,也即是字符串长度加1。输出地址差为6,A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/aed0FFFM
0

最新回复(0)