1. ホーム
  2. c

[解決済み】C言語での参照渡しについて

2022-04-05 20:31:41

質問

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 

解決方法は?

なぜなら、あなたがパスしている のポインタをメソッドに渡し、それをデリファレンスして、指された整数を取得します。