首先,如果你们以前都看过这个,请道歉。我尽我最大的努力尝试在这里和其他地方找到答案。
我是 C 的新手,但我仍然在思考指针并有效地使用它们。
代码(为简洁而编辑):
void getInFile(char fileName[], FILE *inFile) {
inFile = fopen(fileName, "r");
if(inFile == NULL) {
printf("Error1");
}
}
void function(FILE *inFile) {
if(inFile == NULL) {
printf("Error2");
}
}
int main(int argc, char *argv[]) {
FILE *inFile = 0;
getInFile(argv[2], inFile);
function(inFile);
}
如所写,运行程序会给出错误2。如果我将 getInFile 从 void 更改为 FILE* 返回类型,并且在 main 方法中有:
inFile = getInFile(argv[2], inFile);
这是我错误地使用指针的例子还是我做错了什么?