C言語学習のグローバル変数

A.グローバル変数
、関数、変数の外で定義•グローバルされている
•グローバル変数はグローバルスコープと寿命を持っている
彼らは、任意の関数とは何の関係もない•
彼らは任意の内部関数で使用することができます

II。グローバル変数が初期化されている
•グローバル変数は0の値を取得初期化しない
•ポインタがNULL値を取得します
のみ既知の値との•の使用をコンパイル時にグローバル変数を初期化するために
彼らの初期化•main関数の前に発生

書式#include <stdio.hに> int型 F(無効)。int型ガル= 12 ; INTメイン(int型 ARGC、チャーCONST * ARGV [])
{ 
    のprintf(" %sのガル=%d個の\ nの"、__ FUNC __、胆嚢)。  // __func__打印函数名字    F()。
    printf(" %sのガル=%d個の\ nにおけるAGN " 、__ FUNC __、胆嚢)。
    リターン0 ; 
} int型 F(ボイド
{ 
    のprintf(" %sのガル=%d個の\ nの"





 
 

、__ __ FUNC、ガル)。
    ガル + = 2 ; 
    printf(" %sのガル=%d個の\ nにおけるAGN " 、__ FUNC __、胆嚢)。
    返す胆嚢を。
}

 

 

隠されたグローバル変数
•内部関数の変数と同じ名前のグローバル変数が存在する場合、グローバル変数が隠されています

III。スタティックローカル変数
に加えて、静的な修飾子で定義されたローカル変数•は、静的ローカル変数になります

•場合は、静的ローカル変数の機能を残して存在し、その値を保持し続けます

•静的ローカル変数を初期化すると、あなたがこの関数を入力し、初回のみである関数を入力するときに、あなたが去ったとき、未来は値を保持します

•スタティックローカル変数は、実際には、特別なグローバル変数である
彼らは、メモリの同じ領域に位置しています
関数内でグローバル生存、ローカルスコープを持つ静的ローカル変数•

•静的には、ここでローカルスコープ(ローカルにアクセス可能)を意味します

書式#include <stdio.hに> int型 F(無効)。int型ガル= 12 ; INTメイン(int型 ARGC、チャーCONST * ARGV [])
{ 
    F()。//     F()。
//     F()。リターン0 ; 
} int型 F(ボイド
{ int型のk = 0 静的なint型のすべて= 1 ; 
    printf(" &胆嚢=%P \ n "、&ガル)。
    printf("





 

     

     &すべて=%N- \ p型")、およびすべて; // 静的ローカル変数が実際に特別なグローバル変数である 
    のprintf(" N- \&K =%のp- "& K); 
    のprintf(" %でSのすべて=%D \ N- " 、__ __ FUNC、すべて); 
    すべての + = 2 ; 
    のprintf(" AGNで%S%すべてD = \ N- " 、__ __ FUNC、すべて);
     戻りすべて; 
}

 

 

 IV。*リターンポインタ機能
•は、変数のローカルアドレスが危険である返し
安全•グローバル変数または静的ローカル変数のアドレスを返している
メモリは安全が、問題を引き起こす可能性がある中で•戻りmalloc関数は、

•ベストプラクティスは、入ってくるのポインタを返すことです

 

書式#include <stdio.hに>
 int型 * F(無効)。
空隙 G(空隙)。

INTメイン(int型 ARGC、チャー CONST * ARGV [])
{ 
    int型 *のP = F()。
    printf(" * P =%d個の\ n "、* P); 
    G()。
    printf(" * P =%d個の\ n "、* P);
    リターン 0 ; 
} 

のint *のF(ボイド
{ 
    int型 = Iを12 
    printf("&I =%のPを\ n "& I); 
     戻りI; 
    
} 

空隙 G(ボイド
{ 
    int型のk = 24 ; 
    のprintf(" &K =%Pを\ n "& K); 
    のprintf(" K =%dの\ n " 、K); 
}

 

 

 ヒント
•パラメータと機能の間に結果を渡すために、グローバル変数を使用しないでください
•グローバル変数を使用しないようにしてください
トヨタの場合•
スレッドによって妨害され、グローバル変数と静的ローカル変数を使用して•*機能を

おすすめ

転載: www.cnblogs.com/guoweilf/p/11506376.html