Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cのストレージクラス


C言語では、変数と関数の機能は、q変数または関数の可視性やスコープなどのストレージクラスによって記述されます。

C言語のストレージクラスには、自動変数、外部変数、静的変数、レジスタ変数の4種類があります。

自動

自動ストレージクラスは、すべてのローカル変数のデフォルトのストレージクラスです。関数が呼び出されたときに作成されます。関数の実行が完了すると、変数は自動的に破棄されます。

これらは関数に対してローカルであるため、ローカル変数とも呼ばれます。デフォルトでは、コンパイラによってガベージ値が割り当てられます。

スコープ- 自動変数は、関数ブロックのローカル変数です。

デフォルト値- ガベージ値はデフォルトの初期化値です。

生涯- 自動変数の有効期間は、それが定義されているブロックによって制限されます。

これがC言語の自動変数の例です

#include <stdio.h>
int main() {
   auto int a = 28;
   int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The sun of auto variable & integer variable : %d", (a+b));
   return 0;
}

出力

The value of auto variable : 28
The sun of auto variable & integer variable : 36

外部

外部変数は、グローバル変数とも呼ばれます。これらの変数は関数の外部で定義されます。これらの変数は、関数の実行中にグローバルに使用できます。グローバル変数の値は、関数によって変更できます。

スコープ- それらはどの関数にも拘束されません。それらはプログラムのいたるところにあります。つまり、グローバルです。

デフォルト値- グローバル変数のデフォルトの初期化値はゼロです。

生涯- プログラムの実行が終了するまで。

これがC言語の外部変数の例です

#include <stdio.h>
extern int x = 32;
int b = 8;
int main() {
   auto int a = 28;
   extern int b;
   printf("The value of auto variable : %d\n", a);
   printf("The value of extern variables x and b : %d,%d\n",x,b);
   x = 15;
   printf("The value of modified extern variable x : %d\n",x);
   return 0;
}

出力

The value of auto variable : 28
The value of extern variables x and b : 32,8
The value of modified extern variable x : 15

静的

静的変数は一度だけ初期化されます。コンパイラは、プログラムが終了するまで変数を保持します。静的変数は、関数の内部または外部で定義できます。

スコープ- それらはブロックに対してローカルです。

デフォルト値- デフォルトの初期化値はゼロです。

生涯- プログラムの実行が終了するまで。

これがC言語の静的変数の例です

#include <stdio.h>
int main() {
   auto int a = -28;
   static int b = 8;
   printf("The value of auto variable : %d\n", a);
   printf("The value of static variable b : %d\n",b);
   if(a!=0)
   printf("The sum of static variable and auto variable : %d\n",(b+a));
   return 0;
}

出力

The value of auto variable : -28
The value of static variable b : 8
The sum of static variable and auto variable : -20

登録

レジスタ変数は、メモリではなくCPUレジスタに変数を格納するようにコンパイラに指示します。頻繁に使用される変数はレジスタに保持され、アクセスが高速になります。これらの変数のアドレスを取得することはできません。

スコープ- それらは関数に対してローカルです。

デフォルト値- デフォルトの初期化値はガベージ値です。

生涯- それが定義されているブロックの実行が終了するまで。

これはC言語のレジスタ変数の例です

#include <stdio.h>
int main() {
   register char x = 'S';
   register int a = 10;
   auto int b = 8;
   printf("The value of register variable b : %c\n",x);
   printf("The sum of auto and register variable : %d",(a+b));
   return 0;
}

出力

The value of register variable b : S
The sum of auto and register variable : 18

  1. HTML H1値をJavaScript変数に取得しますか?

    JavaScript変数に対するH1の値を取得するには、-を使用できます。 document.getElementById().innerHTML. 次がH1の見出しであるとしましょう- <h1 id="demo"> This is the demo program of JavaScript ........</h1> それでは、以下のコードを使用してH1値を取得しましょう- 例 <!DOCTYPE html> <html lang="en"> <head> <meta char

  2. HTML DOMストレージsetItem()メソッド

    HTML DOM Storage setItem()メソッドは、指定されたキー名を渡すことによってストレージオブジェクトアイテムを削除するために使用されます。 構文 以下は、Storage removeItem()メソッドの構文です- localStorage.removeItem(keyname,value); または sessionStorage.removeItem(keyname,value ); ここで、keynameは文字列型であり、値を取得するために使用されるキー名を表します。 2番目のパラメータ値は、古い値を置き換える新しい値を表します。 例 Storage setI