C语言文件打开函数

怎么有的定义char filename有的定义。char*filename[]然后fp=fopen(filename,"r")
filename到底应该是地址还是字符串

这里你需要搞明白一点,就是字符串的名其实就是一个地址,指向的是字符串的第一个字符的地址。这样说有可能很不好理解,我给你举一个例子吧。
比如,你定义一个char a[10];
那么这个时候,a其实就是一个地址,指向的就是a[0]这个字符,也可以说是指向了整个字符串。
再说说你的问题吧,你其实搞混淆了,filename在函数fopen里其实就是一个字符串指针,你可以定义字符串char filename[] = ”c://1.txt“来保存地址,因为这个时候filename也是一个字符串指针,指向这段内存的一个指针。你也可以直接定义一个字符串指针来指向一段内存,如char *filename = "c://1.txt"。
这2种都是可以的。没有谁对谁错,就看你自己怎么选择了。
满意请采纳,谢谢。追问

谢谢了。字符串的名字可以看作地址。a可以是指向a[0]的地址。最近急着看都看糊涂了。三天看完这教材= =!

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-04
ANSI C规定文件打开用函数fopen,关闭为fclose。
1、调用方式通常为:
代码如下:
FILE *fp;
fp=fopen(文件名, 打开方式);
2、参数说明:
文件名: 形如"myfile.dat"、"F:\data\myfile.dat"等等;
打开方式:
"r"(只读) 为输入打开一个文本文件
"w"(只写) 为输出打开一个文本文件
"a"(追加) 向文件文件尾添加数据
"rb"(只读) 为输入打开一个二进制文件
"wb"(只写) 为输出打开一个二进制文件
"r+"(读写) 为读写打开一个文本文件
"w+"(读写) 为读写建立一个新的文本文件
"a+"(读写) 为读写打开一个文本文件
"rb+"(读写) 为读写打开一个二进制文件
"wb+"(读写) 为读写建立一个新的二进制文件
"ab+"(读写) 为读写打开一个二进制文件
3、注意:
(1)用"r"方式打开的文件,不能向其输入数据,并且该文件已存在,否则出错;
(2)用"w"方式打开的文件,只能向该文件输入数据,如果所打开的文件不存在,则在打开时新建一个以指定的名字命名的文件;如果指定文件存在,则在打开时将该文件删去,然后新建一个新的文件;
(3)如果函数fopen打开文件出错,则fopen返回一个空指针值NULL;
(4)在程序开始运行时,系统自动打开3个标准文件:标准输入(stdin),标准输出(stdout),标准出错输 出(stderr)。如果要使用输入输出终端,则不需要打开,可以直接使用,如fputc(stdout,'a');向屏幕输出字符a。
第2个回答  2013-07-06
 FILE *fopen( 

   const char *filename,

   const char *mode 

);

上面是函数申明

字符串

char filename,有这样定义的吗??

第3个回答  2013-07-06
指向文件名的一个指针(地址)。
第4个回答  2013-07-06
filename 只是叫用户输入一个需要打开的一个文件的名字 就只是一个文件名而已
相似回答