It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。 7年前关闭。 我通过遵循此tutorial(纯c ++)在Objective-c和C中制作.obj加载器。但是我注意到,即使您不向函数fscanf()发送要设置的变量的内存地址(仅发送值),该函数对我来说也可以正常运行。对此有解释吗? Vec2 *uv; fscanf(file, "%f %f\n", uv.x, uv.y); [tempUVs addObject:uv];请注意,参数uv.x和uv.y没有&符。 最佳答案 当您这样做时,这是未定义的行为。可能发生任何事情-它可能崩溃,可能正确运行,在静默破坏内存时看起来可以正确运行,或者可能会擦除硬盘。这些都是根据语言标准允许的行为。如果您使用的是不错的编译器,则可以提高警告级别(例如-Wall,或者还可以使用GCC或Clang调用-Wextra -pedantic),并且在将错误的参数传递给 / *scanf函数族。具体来说,*printf选项将针对此类情况发出警告(-Wformat作为-Wformat的一部分包含在内)。关于objective-c - 为什么不使用参数3+的地址,fscanf可以正常工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14383324/ 10-12 14:50