研修
本日の研修をおおまかに箇条書き。ブログのこういう機能を使いこなさないと。
授業
本日は、「ポインタ」(の続き)と「構造体」。この2つはC言語の肝です。
というのも、両者は「アドレス操作」が重要になってくるものの代表格だからです。
そういえば、大学でCをかじったときにmalloc[メモリアロケイション]という演算を使ったのもこの「構造体」がはじめだった気がします。
よくよく考えてみると、「構造体」はオブジェクト指向に多少似ています。メソッド(オブジェクトが行う処理。関数のようなもの)が定義できないくらいのものか。
アドレスについては
int a,b; int c[6]; int d,e;
と定義したら計算機では
|| a,b,c[4],c[3],c[2],c[1],c[0],d,e 最後尾 アドレス 大 → 小
とスタックメモリの最後尾アドレスからプッシュされることに注意すればいいくらいか。
C言語達成度テスト
最後に今まで研修で行ってきた部分の中間テストを行いました。(「ポインタ」とか「構造体」は範囲外)
難しい部分が軒並み範囲外だった上、前回の事前テスト(04/01に行ったテスト)の内容も入っていましたので、手ごたえは十分。
プログラミングのダウト問題(間違い探し問題)もありました。バグチェックのスキルが試される問題ですね。
(下記一部改題)
include <stdio.h> int main(void) { int i,switch; for(i = 0;i < 5;i++) } switch = i % 2; if(switch) { print("%d\n",i); } } retrun 0; }
とりあえず、5つ全部見つけましたでしょうか?
おそらく、本当のバグチェックではこの数倍の行数になるでしょう(@_@)
1.×「include」→○「#include」
2.switchは予約語であるため、変数として定義できない
3.中括弧の対応が取れていない上、for文に対応するブロックがない。forの直後の「}」を「{」になおす。
4.print→printf
5.retrun→return
↑↑↑解答はこちら↑↑↑