C语言字符串问题

分析下面的C语言程序,程序运行后,结果是()。(选择一项)
#include<stdio.h>
#include<string.h>
void main()
{
char *p[10]={“akshj”,“asas”,“ayusi”,“daksfhasf”,“alsjkfas”};
printf(“%d\n”,strlen(p[4]));
}

a) 9
b) 8
c) 10
d) 3

搞不懂了...望详解,感激不尽
为什么呀。。。?

p是一个含有10个元素的数组。每个元素的数据类型为char*,也就是每个元素存放一个字符串。p[4]在这里存放的就是“alsjkfas”。strlen函数是统计字符串中字符的个数(不包括结束的'\0')。“alsjkfas”有8个字符。 选b。
你好,还是不明白吗?那就再给你推荐一篇我收藏的文章,里面的第五章就是将数组和指针的,里面的例9就是像这种形式的,可以看看。
http://hi.baidu.com/mr_franklin/blog/item/cbc258031d4285064afb514e.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-09
b吧~
第2个回答  2009-07-09
8 *p[10]为指针数组p[4]为指针变量它指向第4字符串
第3个回答  2009-07-09
p[4]实际上指的是字符串 "alsjkfas"

strlen(p[4])返回的是字符串"alsjkfas"的长度....

因为字符串"alsjkfas"有8个字符...所以选B啦...
第4个回答  2009-07-09
B
第5个回答  2009-07-09
B
字符数组P[10] 从P[0],开始排起,P[4],实际上指的就是第五个字符串。而且明显第五个字符串,长度为8,所以答案就是8 选B
相似回答