首页 > 试题广场 >

下列说法正确的是( &nbs...

[单选题]
下列说法正确的是(      )
#include "stdio.h"
#include "string.h"

void fun( char *s)
{
char t[7];
s=t;
strcpy(s, "example");
}

int  main()
{
char *s;

fun(s);
printf("%s",s);

return 0;
}
  • 输出结果为"example"
  • 输出结果为"烫烫烫烫"
  • 程序编译时出现错误
  • 程序运行时出现错误
example/0  是八个字符 而t数组才有七个空间
发表于 2019-08-24 17:19:19 回复(1)
首先,编译是没有问题的;
运行时,strcpy(s, "example")中,example占8个字符,char t[7],会导致运行错误,该为char t[8]运行不会报错;
改为char t[8]后虽然运行不会出错,但输出结果也不是example,还是s本来的值。
发表于 2019-09-15 11:48:42 回复(0)
char t[7]是局部变量
发表于 2019-09-10 09:11:23 回复(0)