c - 在 C 中通过引用传递

标签 c pointers pass-by-reference

如果 C 不支持通过引用传递变量,为什么它可以工作?

#include <stdio.h>

void f(int *j) {
  (*j)++;
}

int main() {
  int i = 20;
  int *p = &i;
  f(p);
  printf("i = %d\n", i);

  return 0;
}

输出:

$ gcc -std=c99 test.c
$ a.exe
i = 21 

最佳答案

因为您将指针的传递给该方法,然后取消引用它以获取指向的整数。

关于c - 在 C 中通过引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2229498/

相关文章:

python - Python脚本之间的通信

c - 是否可以将指针从结构类型转换为扩展 C 中第一个结构类型的另一种结构类型?

c - 数组运算符 "-"(连字符或破折号)在 C 语言中的含义和作用是什么?

C++:shared_ptr 泄漏,链表

java - 从指针获取相关数据

c++ - 将指针作为函数参数传递

c - 将管道分隔文件*读入结构数组 C

c - 将用户确定的坐标分配给嵌套数组

C 结构指针作为参数

Python 变量的地址分配