谁能给我解释一下这道c语言题?

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:05:10
#include "stdio.h"
void WriteStr(char *fn,char *str)
{
FILE *fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是 d
A)start
B)end
C)startend
D)endrt

我总觉得他给的程序有错误,可是不知到错在那?
而且writestr函数要求的是两个字符型指针,可主函数在引用时却给了两个字符串???
谁明白,解释一下

没错,就像楼上说的那样,"start"在形象上是字符串,但c中是没有字符串的类型的,"start"这样的式子本质上是字符指针常量,这个指针指向这串字符的串首,从类型匹配上来说是没有问题的