"関数のパラメータでグローバル変数を渡している間に、参照または値によって渡されますか?"C言語での関数呼び出しの引数としてのグローバル変数
答えて
値渡しです。次のコードはこれが事実であることを示している:
#include <stdio.h>
int global = 5;
void foo(int bar){
bar = 6;
printf("bar = %d\nglobal = %d", bar, global);
}
int main(){
foo(global);
return 0;
}
出力である:
このコードglobal
で
バー= 6
グローバル= 5
のように渡されましたfoo
のパラメータは、このパラメータをbar
と呼びます。だから、最初global
とbar
2つの異なる変数が値5を持つしかし、その後bar
され、両方の参照によって変数を渡すには値6が割り当てられ、引数は値によって参照されて以来、5
でglobal
滞在、使用ポインタ:
#include <stdio.h>
int global = 5;
void foo(int *bar){
*bar = 6;
printf("bar = %d\nglobal = %d", *bar, global);
}
int main(){
foo(&global);
return 0;
}
今、出力は次のようになります。= 6
バーグローバル変数=は/渡す必要がありますされてどのように
ありがとうございます。それは私が実際に欲しかったものです。 –
まず、グローバル変数を関数に渡す必要があるのはなぜですか?あなたが知っていなければ、プログラム内のどこにでも直接アクセスできます。
#include <stdio.h>
int x = 10; //global variable
void fun()
{
printf("%d",x); // direct access
}
int main(void) {
fun(); // no argument required
return 0;
}
あなたが参照によって渡す必要がある場合は、ローカルおよびグローバル変数がCの値によって関数に渡される出力デモhttp://ideone.com/VLWqNO
ご協力ありがとうございます。 :) –
私はまだあなたに投票するようなレポを持っていません。:) –
@ user367180それはあなたの回答をupvoteすることができますか、答えを受け入れることはできますか?はい、緑のチックで1つの回答のみを受け入れることができます:) –
については
10
、あなたはポインタを使用する必要があります。 。
6は、いない変数に、機能に依存します。
int gMyVar;
void foo(int a); // says "call me by value"
void bar(int *b); // says "call my by reference"
foo
が渡されるint型を必要とします。 foo(gMyVar
と呼びます)。
bar
には、intへのポインタが必要です。 bar(&gMyVar)
と呼びます。
他の回答が示すように、Cは常に値を渡しますが、値は変数(値による呼び出し)の値でも、変数へのポインタ(参照による呼び出し)でもかまいません。
- 1. C言語の関数呼び出しでグローバル変数を初期化するC++
- 2. C言語での可変引数関数呼び出しのJson文字列の解析
- 3. C言語の関数呼び出しのシーケンス
- 4. C言語の変数と関数
- 5. 呼び出し元(派生)関数は、呼び出し元(基本)関数の変数にC言語でどのようにアクセスできますか?
- 6. 引数でデバウンス関数呼び出しを呼び出す
- 7. 変数として宣言された反応コンポーネントの呼び出し関数
- 8. メタルシェーディング言語のグローバル変数
- 9. C関数呼び出し
- 10. Objective-Cの関数呼び出しで引数値が壊れている
- 11. 別の関数呼び出しで関数を呼び出す
- 12. 可変数の引数を使用した関数呼び出し
- 13. ネストされた関数を呼び出すC言語
- 14. ARMアセンブリ言語からc関数printfを呼び出す
- 15. 複数の関数呼び出しは、同じ入力引数
- 16. Javascript関数からAppSettingsでグローバル変数を呼び出す
- 17. 関数宣言と変数宣言が呼び出されました。
- 18. スカラ:mapへの引数は、関数OR呼び出しです。
- 19. 引数を指定してC++からv8のjavascript関数を呼び出す
- 20. 引数を指定したJavascript関数の呼び出し
- 21. Matlabでの可変引数の関数呼び出しの処理
- 22. 呼び出すことなく関数内のグローバル変数を変更する
- 23. 関数の呼び出し時に引数の変換が正しくない
- 24. 引数付きのprop関数の呼び出し方法
- 25. 引数とメソッド呼び出しのリスト
- 26. jQuery関数の引数としてグローバル変数を使用できません
- 27. Perlで関数を引数として別の関数に渡して呼び出す方法は?
- 28. 親と同じ引数を持つ呼び出し関数
- 29. C言語の動的関数の引数を扱う
- 30. C言語でunix.cmaを必要とするOCaml関数を呼び出す
私の答えをチェックしてください。有用であることを願っています。 –
私はテストしました、それは価値渡しを示しています。 –
あなたがそうしたものなら、すでにローカル変数を作成しています。まず、あなたのコードリンクを教えてください。 –