在我大学的C编程课程中,教授及其后来的书在引用C中的指针时使用了术语调用或通过引用传递.
我的教授称之为"参考函数调用"的一个例子:
int sum(int *a, int *b);
Run Code Online (Sandbox Code Playgroud)
我的教授称之为"价值函数呼叫"的一个例子:
int sum(int a, int b);
Run Code Online (Sandbox Code Playgroud)
我读过 C不支持通过引用调用.根据我的理解,指针通过值传递.
基本上,说指针是C通过引用传递的方式是不正确的吗?说你不能通过C中的引用传递但是可以使用指针替代它会更正确吗?
2015年11月11日更新
从我的问题起源的方式来看,我认为术语的争论已经产生,实际上我看到了两个具体的区别.
在阅读了@Haris的更新答案之后,为什么这不是那么黑白,这是有道理的.
有时IntelliJ将采用单一语句方法并将它们放在同一行,如下所示:
如果我点击任一支架,它将变回:
这个问题不是争论两者中哪一个更好 - 我想知道如何解决这个问题.我梳理了IntelliJ偏好,似乎找不到任何东西,在这里搜索和谷歌没有提出我想要的东西.
我使用的是open()用O_RDWR,然后使用描述符fdopen()用"r+".我检查文件是否首先存在access(),并检查open()返回-1然后检查该FILE *fp集合fdopen()不是NULL.
现在,每当我使用任何功能,如fgets()或fgetc()与fp该程序挂在我的终端.我没有编译器警告.有任何想法吗?

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char **argv) {
char buffer[512];
int file_descriptor;
FILE *file;
if (argc != 2) {
puts("ERROR: Missing argument");
exit(0);
}
else if (access(argv[1], F_OK) == -1) { // Check if file exists
puts("ERROR: File does not exist");
exit(0);
} else if …Run Code Online (Sandbox Code Playgroud) 仅打印换行符更好(在性能和最佳实践中):
putchar('\n') 要么 puts("")
据我所知,putchar输出一个字符并puts输出一串字符.忘掉了printf.
我倾向于使用puts,因为它是短,但这样做("")只是感觉不对.
哪个更快更好?