2019年5月22日水曜日

雑記

<<追記20190522
今日は市役所に寄った。そのため一本遅れてバスに乗った。
今日からプログラムの話をする予定である。
どこまで書けるかわからんけど出来るだけ自分にあるものをはき出そうと思っている。

まずは初期化が今日のテーマである。
何で初期化する必要があるのかというとプログラムを複数起動する時とか
関数を複数起動する時とか初期化しないと同じ計算が出来無くなるからである。
つまりデータが残ったまま計算して誤動作する。
そのため一回初期化して計算出来るようにすると複数回起動してもちゃんと計算する。

int i = 0;

と宣言しておくとその後の起動もちゃんと0になる。
この0が無いと複数回起動後値が変化して同じ計算が出来無くなる。
GOTO文というのがあってプログラムが飛ぶようなコードの場合
どこで初期化しているかわかりづらくなる原因である。
なのでオブジェクト指向のプログラムだと
コンストラクタで初期化を必ずするコーディング規約にする場合がある。

int i = 0;
i = i +1;

これはi=1になった計算である。これをインクリメントと言う。また上から複数起動されてもi=1になる。
それが初期化の重要性である。

int i =0;int j =0;int k =0;
j = ++i;
k = i++;

++iは先にインクリメントして代入。
i++は代入してからあとにインクリメントという意味である。
なのでj=1,k=1となる。
for文の場合++iもi++も同じ意味である。

char chapter_1[11] = "HelloWorld";

文字列の場合C言語だと配列をつかって初期化する。
これは配列の最後がヌル文字になる。
chapter_1[0]=H;
chapter_1[1]=e;
chapter_1[2]=l;
chapter_1[3]=l;
chapter_1[4]=o;
chapter_1[5]=W;
chapter_1[6]=o;
chapter_1[7]=r;
chapter_1[8]=l;
chapter_1[9]=d;
chapter_1[10]=\0;<---ヌル文字
これをポインタを使って文字列を変更出来る。アドレスを変更するのである。
c言語の文字列はヌル文字が最後に来て最後だと判断する。
chaper_1[5]=\0;
とするとHelloと言う文字列になる。
今日はこの辺にしとく。明日もボチボチやりたい。
<<追記20190522end

0 件のコメント:

コメントを投稿