这是通过引用传递文件指针的正确语法吗?
函数调用:printNew(&fpt);
printNew(FILE **fpt)
{
//change to fpt in here kept after function exits?
}
答案 0 :(得分:5)
没有。正确的语法是
void printNew(FILE *&fpt)
{
//change to fpt in here kept after function exits?
}
您的代码只会将本地指针更改为FILE指针。代码中只有调用者才能看到对*fpt
的更改。如果将其更改为上述内容,则会通过引用传递内容,并且会按预期进行更改。相应的参数照常传递
printNew(fpt);
答案 1 :(得分:2)
我对你要对该文件指针做什么感兴趣 - 你在开放指针上做的正常事情是调用fgets()之类的函数并用fclose()关闭它,其中没有一个需要一个参考