いらっしゃいませ。
こちらでは、私の日々の記録や思っていることを書いております。
本ブログについての重要事項は[広報モード]に記載されておりますので、
広報モードカテゴリの内容は必ずご覧ください。

また、はてなダイアリー・はてなブログによるリンクより辿って来た方は、
ホームページはこちらですので、
そちらもご覧ください。
一般的な雑談やご要望などはホームページにある「カフェ」(掲示板)にお願いします。
日記に対するコメントは一番近い話題が書かれている日のトピックスのコメント欄に、お願いします。
触れてある内容に近い話題であるならそちらに書き込んでも構いませんが、日記にコメントしていいかどうかわからない場合は、掲示板に書いても構いません。
ホームページにはゲストブックもございますので、足跡をよろしくお願いいたします。

記事内の動画を再生する際には、最新の QuickTime Player(無料)が必要です。

研修

本日の研修をおおまかに箇条書き。ブログのこういう機能を使いこなさないと。

授業

本日は、「ポインタ」(の続き)と「構造体」。この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
↑↑↑解答はこちら↑↑↑