有以下程序 #include <string.h> main() {char str[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); }

admin2009-04-15  20

问题 有以下程序    #include    <string.h>    main()    {char  str[][20]={"Hello","Beijing"},*p=str;      printf("%d\n",strlen(p+20));    }    程序运行后的输出结果是

选项 A、0
B、5
C、7
D、20

答案4

解析 二维数组的初始化及库函数strlen()的应用,主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]=“Hello”、str[1]=“Beijing”,然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p +20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7。
转载请注明原文地址:https://jikaoti.com/ti/TFK0FFFM
0

最新回复(0)