アットウィキロゴ

役立つ小ネタ集その2

第2回覚えておくと便利な小ネタ

文字を入れる型

 今まで変数の型はint型等の数値を格納する型ばかり扱って来ましたが、
文字を格納する型もあるんです。それがchar型です。読み方はキャラ型と読みます。
変数1つにつき半角1文字を格納する事ができます。配列にすれば複数の文字が扱えます。

char型
char c = 'a';
 

#includeの意味

 今までなんとなく使っていた#includeはどの様な意味を持っているのかという疑問を解決しましょう。
これは「あるファイルをこの場所にインクルード(取り込む)しなさい」という命令をコンパイラに対して行なっているのです。
#includeの後に記述する
< stdio.h >はstdioヘッダーファイルを読み込みなさいという命令だったんですね。


C言語での文字

 先ほど文字を扱う型をやりましたが、実はC言語ではその文字に与えられた文字コードと呼ばれる整数値なんです。
もちろん型の代入でも文字コードで指定することも可能です。文字コードはJISコードやASCIIコードなどが使用されています。

有効範囲(スコープ)

 { }内で宣言された変数はその{ }内でしか使えません。これをスコープといいます。
他の関数等で呼ぶような記述をするとエラーになります。

int main( void )
{
 {
   int n;
   n = 0;
 }
 
   n =10;  /* エラーになる */
 
   return 0;
}
 
 この{ }でくくられている部分をブロックと呼びます。変数はそれそれのブロック内のみ有効です。
違うブロックならば同じ変数名で変数が作成されてもエラーになりません。仮引数宣言も同様です。
ブロック内で宣言された変数をローカル変数と呼びます。

プロトタイプ宣言

 これは予めコンパイラに対して関数の情報を与える宣言文です。
書き方は関数を書く前にmain関数より前に関数頭部のみを記述するだけです。
あくまで情報を与えるだけで関数と実態は別で書きます。

int func( void ); /* プロトタイプ宣言 */
 
int main( void )
{
  処理
}
 
/* 関数実体 */
int func( void )
{
 処理
}
 

関数に配列を渡す

 関数には配列も引数として渡すことができます。
まず、関数の仮引数に配列宣言しておきます。実引数は配列名だけを渡すだけです。
しかし、同時に要素数を渡す事ができないので別の仮引数を宣言して渡してあげましょう。
多次元配列でも同様です。

int func( int list[], int num )
{
 処理
}
 
 
/* 関数実体 */
int main( void )
{
 int vc[ 5 ] = { 0,1,2,3,4 };
 
 func( vc, 5 ); /* 2番めに要素数を渡している */
}
 

const型修飾子

 型の前にconstをつけるとその変数は書き換えができなくなります。
配列の要素数等の不変的な定数に使用するのが一般的ですね。
定数をこのようにまとめておくと変更する場合の手間が減ります。

const int num = 5; /* 要素数(要素数の変更があった場合ここのみを変えれば他にも反映される) */
int vc[ num ] = {0,1,2,3,4};
 
/* 定数化して変更を容易に */
for( int i = 0; i < num; i++ )
{
  処理
}
 
/* 仮引数に使用すると関数に渡した値が勝手に書き換わるのを防ぐ */
int func( const int vc[] )
{
 処理
}
 
 

最終更新:2013年01月10日 15:42