为什么一个字符指针可以用来表示一个文件路径?

例如:
//---------构建列表----------------------------

NODE* buildList (char* fileID)
{
DATA data;
NODE* pList;
NODE* pPre;
NODE* pCur;
FILE* fpData;

pList = NULL;

fpData = fopen(fileID, "r"); //这一段没有看懂,fileID不是字符的指针么,为什么可以用来表示文件的路径?
if(!fpData)
{
    printf("error.");
    exit(210);
}

while (getData (fpData, &data))
{
    searchList (pList, &pPre, &pCur, data.key);
    pList = insertNode(pList, pPre, data);
}
return pList;

}

文件路径是一个字符串,实际上fopen("a.txt","r"),传入的就是“a.txt”字符串的地址,而fileID的值就是“a.txt”的地址值,当前只需要fopen(fileID,"r")了。
如果用*fileID就变成取出该地址的值了,其值为‘a’了

文件的路径是什么,文件的路径就是一个字符串,获取这个字符串的地址自然可以访问。 看来是新手中的新手啊

指针存放的其实是字符串的首地址,这样可以通过这个指针去访问字符串了。

因为字符串在内存中连续存放,以\0为结束。所以有了首地址,循环一直读下去就可以得到整个字符串。

fopen 原型:FILE *fopen(char *filename, *type);
fopen("c:\data.dat", "r"); 实现时 "c:\data.dat"是存储在内存里的,通过fileID这个指针来找到.

指针的基本概念的问题,你需要再学习一下指针,只是C语言的精粹。指针的 * 操作是去指针的一个内容,直接使用指纹变量是取从此地址开始的内容,知道遇到字符串结束符NULL。