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演算子について。

〇【C言語】sizeof演算子とは?sizeof演算子を利用するメリットは?