C言語の変数の宣言の方法

プログラミング C言語

C言語では値を変数に保存しておくことができます。

変数とはコンピュータのメモリ上に確保された様々な値を保存しておく場所のことで、一定のルールに従った名称を付けて扱うことができます。

ここではC言語の変数の宣言の仕方を学びます。

スポンサーリンク

C言語の変数の宣言の方法

C言語の変数の宣言の方法は以下のように行います。

変数の型   変数名 ;

このように宣言することで指定した変数名でコンピュータのメモリ上に値を保存するエリアが確保されます。

変数名を付ける際のルール

C言語の変数名にはある一定のルールに則ってつける必要があります。

  1. 変数名は半角英文字または「_(アンダーバー)」から始める
  2. 変数名に「&」「」「/」「-」「+」などの「_(アンダーバー)」「*(アスタリスク)」以外の特殊文字は使えない(「*」はポインタ変数の目印として利用可能)
  3. 変数名の大文字、小文字は区別される
  4. 同一スコープ内に同一変数名は使用できない(スコープについては後述)

具体例としては

    int   3hensu ;   //これは×
    int   hen-su ;   //これは×
    int   Hensu,hensu ;  //Hensuとhensuは別の変数
    int   hensu,hensu    //同一スコープ内で同じ変数名は使えない

になります。

変数のスコープ

C言語の変数には有効になる範囲(スコープ)が存在します。

スコープには大きくわけて、グローバルエリアとローカルエリアと呼ばれる2つのスコープがあります。

グローバルエリア

グローバルエリアは各関数よりも外側にある変数ですべての関数で参照可能な変数です。
但し、宣言に「static」と共に宣言された場合は同一ファイル内にある関数からのみ参照可能です。
このグローバルエリアに宣言される変数をグローバル変数と呼びます。

また、グローバル変数にはメモリ確保持に初期値として「0(0x00)」が必ず設定されます。

#include <stdio.h>

int   i ;    //なんかの変数(グローバル変数)

int main()
{
    sub1() ;
    sub2() ;
}
int sub1()
{
    i = 10 ;                //グロバール変数なのでここでも参照可能
    printf( "i=[%d]n", i );
    return 0;
}
int sub2()
{
    i = 20 ;                //グロバール変数なのでここでも参照可能
    printf( "i=[%d]n", i );
    return 0;
}

上記のソースを実行すると

i=10
i=20

よ表示されます。(プロトタイプ宣言等は省略しています。)

このようにグローバル変数はどの関数からも参照可能な変数になります。

ローカルエリア

ローカルエリアは各関数の内側にある変数で関数内のみ参照可能な変数です。

このローカルエリアに宣言される変数をローカル変数と呼びます。

また、ローカル変数にはメモリ確保持に初期値としては何も設定されないので、初期値を指定しないで宣言した場合は不定値がセットされていることになります。

#include <stdio.h>


int main()
{
    sub1() ;
    sub2() ;
}
int sub1()
{
    int   i ;               //なんかの変数(ローカル変数)
    i = 10 ;                //ローカル変数なので関数内のみ参照可能
    printf( "i=[%d]n", i );
    return 0;
}
int sub2()
{
    i = 20 ;                //sub1()のローカル変数なのでここでは参照できない
    printf( "i=[%d]n", i );
    return 0;
}

上記ソースをコンパイルするとsub2()の中で「iが宣言されていません」という文法エラーになり、実行モジュールは生成されません。

まとめ

このようにC言語の変数は「変数の型 変数名;」で宣言し、グローバル変数とローカル変数の2種類が存在ます。

グローバル変数とローカル変数では参照できる範囲(スコープ)が異なるので注意が必要です。

以上、C言語の変数の宣言の方法でした。

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