C语言的题目!

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:00:11
#include<string.h>
main()
{char str[][20]={"Hello","Beijing"},*p=str[0];
printf("%d\n",strlen(p+20));
}程序运行后的结果是什么?为什么?
自己试还问你干什么?
关键是要知道为什么!

输出结果为 7;
实际上就是第二条串“beijing”的长度
因为你定义的时候,第二维是 20,
指针p初始化的时候指向的是"Hello"里的‘H’,虽然其长度仅为5;
但是因为你定义的是 20,所以后面跟了 14个字节的空白内存(除去后面的'\0')
所以,p+20指向的是“beijing”中的'b',所以结果为'7'

自己试