这是通过引用传递文件指针的正确语法吗?

T.T*_*.T. 0 c++ variables pointers reference pass-by-reference

这是通过引用传递文件指针的正确语法吗?

功能调用: printNew(&fpt);

printNew(FILE **fpt)
{        
   //change to fpt in here kept after function exits?
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*itb 5

不.正确的语法是

void printNew(FILE *&fpt)
{        
   //change to fpt in here kept after function exits?
}
Run Code Online (Sandbox Code Playgroud)

您的代码只会将本地指针更改为FILE指针.只有*fpt您的代码中的调用者才能看到更改.如果将其更改为上述内容,则会通过引用传递内容,并且会按预期进行更改.相应的参数照常传递

printNew(fpt);
Run Code Online (Sandbox Code Playgroud)