C言語-超基本その3-
C言語独学の超基本のメモ。
変数の有効範囲、配列について。
変数の有効範囲
ローカル変数:宣言された関数内。
グローバル変数:プログラムのどこでも。
変数によって有効範囲が違うのは、関数を独立して使いやすくするため。プログラムの他の部分を勝手に変えられないようにするため。
〇ローカル変数 宣言されたブロック内でしか使えない。
#include <stdio.h>
int main (void){
{
int sample = 10;
}
printf("%d", sample);
return 0;
}
//これを実行すると、エラーになる。宣言された変数sampleがブロック{}の中でしか使えないから。
//ブロック{}を消すと、sample の10がターミナルに表示される。
〇グローバル変数 プログラムのどこでも使える変数。
#include <stdio.h>
int sample = 10;
int main (void){
printf("%d", sample);
return 0;
}
//実行すると、sample の10がターミナルに表示される。
#include <stdio.h>
int sample = 10;
int main (void){
int sample = 5;
printf("%d", sample);
return 0;
}
//実行すると、ブロック内のsample の5がターミナルに表示される。ローカル変数とグローバル変数では、ローカル変数が優先される。
配列
配列:一度に大量の変数を扱う事ができる。
- 型名:要素1個分のメモリスペース
- 配列名:配列全体につける名前
- 要素数:メモリスペースが何個あるか
〇配列の宣言と値の代入が別の例
#include <stdio.h>
int main (void){
int sample [10]; #メモリスペース10個分確保
sample [5] = 15; #値を代入
printf("%d", sample[5]);
return 0;
}
//実行すると、15が表示される。
#include <stdio.h>
int main (void){
int sample [10];
sample [5] = 15;
printf("%d", sample[5]);
printf("%d", sample[3]); #値が代入されていない場所。
printf("%d", sample[20]); #配列の要素外。
return 0;
}
//実行すると、15,0,0が表示される。値が代入されていない場所は0になる。
//配列の要素外は、エラーとなり、0が表示される。
〇配列と値の代入を同時に行う例
#include <stdio.h>
int main (void){
int sample [5] = {5,10,15};
printf("%d\n", sample[0]);
printf("%d\n", sample[1]);
printf("%d\n", sample[2]);
printf("%d\n", sample[3]);
printf("%d\n", sample[4]);
return 0;
}
//実行すると、5,10,15,0,0が表示される。
〇要素数を省略する例
#include <stdio.h>
int main (void){
int sample [] = {5,10,15};
printf("%d\n", sample[1]);
return 0;
}
//実行すると、10が表示される。要素数を省略すると、数え間違いがなくなる。
〇配列とfor文
#include <stdio.h>
int main (void){
int sample [5] = {5,10,15};
int i;
for(i=0, i<5; i++){
printf("%d番目:%d\n", i, sample[i])
}
return 0;
}
//実行すると「0番目:5」「1番目:10」「2番目:15」「3番目:0」「4番目:0」
〇sizeof演算子 配列の要素数を数えることができる。
#include <stdio.h>
int main (void){
int sample [5] = {5,10,15};
int i;
for(i=0, i< sizeof(sample) / sizeof(sample[0]); i++){
printf("%d番目:%d\n", i, sample[i])
}
return 0;
}
//実行すると「0番目:5」「1番目:10」「2番目:15」「3番目:0」「4番目:0」
以上、こちらの動画を参考にしました。
sizeof演算子について。