C言語-constおよびstasticキーワード

1.const

constは定数を意味し、変数を変更するために使用されます。これは、定数であることをコンパイラーに通知します。

例:int const a = 10;この時点で値を割り当てている場合、システムはコンパイル時にエラーを報告します。

では、const aを定義した場合、本当に変更することはできませんか?

答えは「はい」です。constメカニズムは、テキスト定数領域に配置されていますが、コンパイラチェックによって実装されます。プログラムが実際に実行されているとき、コンパイラがエラーを報告しない限り、それがconstであるかどうかは関係ありません。

次のように変更できます。

int main()
{
    int const a = 5;
   int *p = (int *)&a;
    *p = 55;

}

このとき、a = 55を読む

2.素晴らしい

素晴らしいローカル変数、素晴らしい関数、素晴らしいグローバル変数に分けられます

Stasticローカル変数:ローカル変数のデータ型の前にキーワード「static」を追加して、ローカル変数を静的変数に変換します。ローカル変数には、ローカル変数のスコープとグローバル変数の宣言サイクルがあります。

素晴らしい関数:ローカル関数は、この関数が現在のソースファイルでのみ使用でき、プロジェクトの他のソースファイルがこの関数を呼び出すことができないことを意味します。静的関数はメモリ内に1つのコピーしかなく、通常の関数は各呼び出しコピー

Stasticグローバル変数:静的グローバル変数はその範囲を制限します。つまり、変数が定義されているソースファイルでのみ有効であり、同じソースプログラムの他のソースファイルで使用することはできません。静的グローバル変数のスコープは1つのソースファイルに制限されているため

おすすめ

転載: blog.csdn.net/qq_45604814/article/details/110826089