C言語のきほん「ローカル変数」

スポンサーリンク
C言語 C言語

さて、グローバル変数と同じ名前の変数を、関数の中で宣言してもエラーにはならない。

この場合、ローカル変数が優先される。

プログラムで確認してみよう。

なお、本プログラムは、Windows 11 Home(23H2)上で、 Visual Studio Code(1.91.1)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0でコンパイルしている。

//ローカル変数

#include <stdio.h>

int a = 10;

void func(void)
{
    printf("%d\n",a);
    int a = 0;
    a++;
    printf("%d\n",a);
}

int main(void)
{
    func();
    printf("%d\n",a);

    return 0;
}

実行結果

10
1
10

実行結果の1行目は、グローバル変数aの値である。

2行目は、func関数内のローカル変数の値である。

3行目はグローバル変数の値である。

ただし、このようなプログラムコードは混乱のもとになるので、グローバル変数とローカル変数には異なる名前をつけるようにする。

参考)「C言語 新版 ゼロからはじめるプログラミング」 三谷 純 (著) 翔泳社

コメント

タイトルとURLをコピーしました