C言語の文法入門(1)

何回かに分けてCの文法をまとめる

変数

宣言

型 変数名;

で宣言する 型の種類は以下のものなどがある 整数型

  • char (-128 ~ 127 8bit)
  • short (-32768~+32767 16bit)
  • int (16bit または 32bit)
  • long (32bit) 浮動小数点型
  • float (32bit)
  • double (64bitまたはそれ以上)
  • long (64bit以上) 文字型
  • char (一文字のみ 8bit)

変数名については、以下のような命名規則がある

  1. 1文字目には、アルファベットの小文字・大文字、もしくはアンダースコアが利用できる(数字はNG)。
  2. 2文字目以降には、数字、アルファベットの小文字・大文字、アンダースコアが利用できる。
  3. アルファベットの小文字と大文字は区別される。
  4. 予約語は使えない。

配列

配列の宣言方法は以下のようになる

変数の型 変数名[配列のサイズ];

あらかじめ配列のサイズを指定するので、後からサイズを変更することはできないらしい ちなみに宣言時に、配列の中身を指定しない場合0で初期化される 初期化方法はこうなる

変数型 変数名[配列のサイズ] = {配列の中身};

C言語では配列を表す時に{}を使用する。 配列を初期化する際は配列のサイズの指定を省略することができ、その場合は与えられた要素の数に合わせたサイズの配列が作られるらしい。

多次元配列を利用することもでき

変数の型 変数名[配列の数][配列の数];

というように宣言する。

配列の出力

printfでは配列をまるごと出力する事ができないので、ループを使用して各要素を出力する

#include <stdio.h>
int main(void){
  int nums[3] = {1, 2, 3};
  printf("nums = /n");
  for(i=0;i<3;i++)
    printf("%d/n", i);
  return 0;
}  
#出力結果 
nums =
1
2
3

文字列

C言語の文字型はcharしか無い。 charは一文字のみを扱える型なので、

char name = 'tetsu'

という式はエラーになる。

文字列を扱うためには配列を使用しなければならない。 文字列を配列する格納する方法は2つある。

#シングルクォートを使用する場合
char name[] = {'t', 'e', 't', 's', 'u'};
#ダブルクオートを使用する場合
char name[] = "tetsu"

文字列を配列に格納した場合の出力は

printf("%s\n", name);

というように一度に出力できるようになっているようだ。

ちなみに日本語を変数に格納するときは注意が必要だ。 日本語はマルチバイト文字なので、一文字であっても配列でないchar型変数には格納できない。 なので日本語を使うときは絶対に配列を使用しなければならない

char character = "あ";   => エラー
char character[] = {'あ','い'};  => エラー
char character[] = {"あ","い"};  =>ダブルクオートでもこうすると エラー
char character[] = "あ、い"  =>これが正解

今回はここまで、次回は演算子や条件分岐、ループについてまとめる。