プログラムを実行していく中で、内部のデータは条件や演算結果によって常に変動しています。
この変動するデータを格納しておくための方法として「変数」というものを使用します。
「変数」とは、データを入れておく箱のようなもので、一時的にデータを入れておいて、必要な時に取り出して使用したり、取り出して加工(演算等)してから戻して、また必要な時に使用したりします。
1.「変数」の宣言
2.「C言語」ではどうして型の宣言が必要なの?
3.「変数」の使用方法
4.「Lチカ」プログラムで動作確認してみよう(ATOM LITE使用)
5.変数」の「型」いろいろ
6.データサイズについて(bit(ビット)とbyte(バイト))
7.「int型」について
8.ブラウザ上で動作確認するなら
9.まとめ
10.独学に限界を感じたら
1.「変数」の宣言
「変数」を使用するには、あらかじめ宣言しておく必要があります。
「変数」の宣言は以下のように行ないます。
型名 変数名 = 初期値;
・文字型:char
・整数型:int
・単精度浮動小数点型:float
・倍精度浮動小数点型:double
①変数名は下線( _ )、英大文字小文字、数字で構成する。
②先頭の1文字目は数字以外。
③大文字小文字は区別されますが、一般的に変数名には小文字が使われます。
④「プログラム言語」の文法で使用されているコマンド(if や for等)は使用できません。
⑤文字数に制限はありません。
しかし、省略して宣言した時点では格納されているデータは不定(何が入っているかわからない)のため、この後のプログラム内で初期値を指定して使用されない変数は宣言時に初期値を指定しておきましょう。
2.「C言語」ではどうして型の宣言が必要なの?
「C言語」では「変数」に「型」を指定して宣言しますが、「Python」や「JavaScript」では特に指定しない限り自動的に扱うデータに合ったサイズの「変数」が用意されるため「型」の指定は必要ありません。
それでは何故わざわざ型を指定するのでしょう?めんどくさいですよね?しなくていいならしたくない。当然です。
実際は「型の指定は必要ありません」という表現だけでは間違っており、「人間が型の指定をする必要はありません」が正しい表現でしょうか。
実際にはプログラミング言語側で自動的に「型」の判別が行われているだけで「型の自動判別」の分だけ処理速度が遅くなっています。
このため「C言語」のように「変数」の「型」を前もって指定するプログラムの方が高速処理に向いています。
また、大規模なプログラムで複数人で作業する場合、この「変数」がどういう意図で使われているものなのかが明確でないと意図した動作にならない場合があります。
ここで紹介する小規模なプログラムであれば全く問題ありませんが、大規模なプログラムでは変数の型を明確にしておいた方が理解しやすく、間違いも少なくなります。
3.「変数」の使用方法
「変数」には「値」を代入して使用します。
「値」を代入するとは「変数」という箱の中に「値」を入れるようなものです。
変数 = 値;
「変数」へ「値」を代入する記号として「=」を使用します。「=」右側の「値」を、左側の「変数」へ代入します。
数学の「=」とは意味合いが異なりますので注意しましょう。
あくまでここでの「=」は代入することをプログラムに知らせるための記号です。
int i; //「 i 」という「変数」を宣言
i = 0; //「 i 」の初期値として0を代入
i = i + 1; //「 i 」に 1 を足して i に代入
「 i = i + 1」が実行されるたびに「 i 」の値は1づつ増えていきます。
※「 = 」の右側の「i + 1」を実行して、その結果を左側の「 i 」に代入しています。
4.「Lチカ」プログラムで動作確認してみよう
別記事の「C言語 演算子(条件式)について」で実際に、マイコンボード「ATOM LITE」を使用して、「変数」で本体のボタンを押した回数をカウントするプログラムを以下リンクで紹介してますので確認してみましょう。
5.「変数」の「型」いろいろ
「C言語」の型名には扱えるデータサイズ(データ範囲)によってたくさんの種類があります。
今全てを覚える必要はありませんので紹介程度に一覧表にまとめました。
今後必要に応じて確認してみてください。
型 | 型の説明 | データサイズ | 扱えるデータ範囲 |
---|---|---|---|
unsigned char | 文字型 | 1byte | 0~255 |
char | 文字型 | 1byte | -128~127 |
unsigned short | 符号なし単整数型 | 2byte | 0~65,535 |
short | 単整数型 | 2byte | -32,768~32,677 |
unsigned int | 符号なし整数型 | 4byte | 0~4,294,967,295 |
int | 整数型 | 4byte | -2,147,483,648~ 2,147,483,647 |
unsigned long | 符号なし長整数 | 4byte (8byte) | 0~4,294,967,295 |
long | 長整数 | 4byte (8byte) | -2,147,483,648~ 2,147,483,647 |
float | 単精度浮動小数点 | 4byte | 最小の正の数:3.4e-38 最大値:3.4e+38 |
double | 倍精度浮動小数点 | 8byte | 最小の正の数:1.7e-308 最大値:1.7e+308 |
6.データサイズについて(bit(ビット)とbyte(バイト))
「1bit」は「0」か「1」を表すデータです。「1byte」は「1bit」のデータが「10101010」のように8個集まったものを表します。「byte」と「bit」の関係は以下のようになります。
7.「int型」について
「int型」はもともと使用するパソコンが持っている自然のサイズとして定義されていました。
ここで紹介したint型のサイズは4byte(32bit)ですが、最近のパソコンは64bitが主流です。
しかし「int型」は定義通りの8byte(64bit)にはならず4byte(32bit)になっています。
「long型」については使用するパソコンや開発環境、OSによって異なることがあるため注意が必要です。
このためint型は以下のようにサイズを明確に指定して宣言することもできます。
8.ブラウザ上で動作確認するなら
ちょっとした動作確認をしたい時は、ブラウザ上でプログラムを作成して実行できる「paiza.IO」が便利なので以下にリンクを貼っておきます。
無料で使用できて「C言語」だけでなく「python」や「JavaScript」「PHP」等たくさんの言語にも対応しています。
プログラミングの上達には学ぶことも大切ですが、自分で書いて実行して、どんな動きになるか、間違っててもいいのでこれをひたすら繰り返すことが一番の近道と思います。たくさん書いて実行してみましょう。
9.まとめ
「C言語」の「変数」について紹介しました。
「変数」とは、データを入れておく箱のようなもので、一時的にデータを入れておいて、必要な時に取り出して使用したり、取り出して加工(演算等)してから戻して、また必要な時に使用したりします。
変数を使用する時「python」や「JavaScript」では特に気にすることはありませんが「C言語」では「型」を意識する必要があり、あらかじめ宣言しておく必要があります。
「型」の宣言はわずらわしく感じるかもしれませんが、「型」を前もって指定しておくことでプログラムの処理速度は速くなります。
「python」や「JavaScript」では自動的に「型」の判別が行われているため「型の自動判別」の分だけ処理速度は遅くなります。
また「型」を指定することで、その「変数」がどういう意図で使われているものなのかが明確になり、大規模なプログラムでも理解しやすく、間違いも少なくなります。
「型」の宣言時に初期値を設定する「初期化」を行いますが省略することも可能です。
しかし、省略して宣言した時点では格納されているデータは不定(何が入っているかわからない)のため、この後のプログラム内で初期値を指定して使用されない変数は宣言時に初期値を指定しておきましょう。
「型」には扱えるデータサイズ(データ範囲)によってたくさんの種類があります。
いきなり全てを覚える必要はありませんので使いながら少しづつ覚えていきましょう。
「変数」の理解にはブラウザ上で動作確認できる「paiza.IO」もいいですが、実際に作成したプログラムを動かして、目で見て確認すると理解が早いです。
これには安価で高機能なマイコンボード「ATOM LITE」が手軽でおすすめです。
本体内蔵のボタンとフルカラーLEDでいろいろな動作プログラムを作成して、理解を深めましょう。
動かして学ぶ「C言語」については、他にも以下のリンクで基礎からサンプルプログラムを使って詳しく紹介しています。
10.独学に限界を感じたら
最後に、独学に限界を感じている方へ、私のように無駄な時間を過ごさないように「C言語」や「Python」を基礎から学べるオンラインスクール(教室での受講も可)の紹介です。
私は学生の頃、独学で「C言語」を始めましたが、かなり時間をかけて結局一度挫折しました(汗)
仕事で少しプログラミングに触れる機会もあり、今となっては小規模なプログラムなら組めますが、どれだけ時間をかけたでしょう・・・
短期間で基礎から学べて質問もできる、そんな環境が当時あったらと思うと・・・
今はとても羨ましい時代になりました。
いろいろなプログラミングスクールのサイトを見て回りましたが「C言語」と「Python」の両方を扱っている所は少ないです。その中でも以下のスクールは他の言語も含めて、たくさんの講座から目的やスキルに合ったものを組合わせて、オンラインでも対面でも受講が可能です。
ほとんどの受講生が未経験で、全国に教室があるため現地で直接指導してくれますが多くの講座がオンライン対応です。
オンラインでは「個人レッスン(講師一人につき3名程)」と「集合レッスン」の選択も可能です。
オンラインレッスンの方には授業で使用するノートPC(ソフトインストール済み)も追加料金なしで貸りられて、質問掲示板を使って授業時間外でも質問できます。
無料体験もあり、説明会やカウンセリング等も行っています。
以下のリンクから内容だけでも確認してみてください。
コメント