とんちゃんといっしょ

Cloudに関する技術とか日常とかについて書いたり書かなかったり

C演習2TA 6回目

本日からポインタ。


でも開始速攻小テスト。


40人ほど遅刻でいないけどな!*1


おかげで遅れてきた連中の小テストの手配などで色々忙しかった。
あと、遅刻組みが多かったため予想よりは質問が少なかったと思う。


しかし、char, int, float, doubleの最大値
2^64 - 1
これが整数になったとき学生たちは答えが間違っていると思うらしい。


私も正確な値を聞かれると困るのだが、とりあえず値が大きいことを認識できればいい問題だった。
なのに、答えあってるかなんて3人も4人も同じ質問してくるな。
情報科学概論とかで習わなかったっけ?


あと本日の秀逸な質問

main(void){
  int x=55, y=66;
  int *p1 = &x, *p2 = &y;

  *p1 = *p1 + *p2;
  *p2 = *p1 - *p2;

  printf("%d\n%d",*p1 ,*p2);
}


このプログラムの回答は
121
55
こうだとモニタで表示されているのだが、*p2の値が納得できないらしい。


なんでやねん。


何故納得できないのかを聞くがそれが説明できないらしい。


どうしろと?


とりあえずプログラムの頭から1行ずつ説明すると途中で納得がいったらしい。


だからこいつは何が分からなかったのか誰か教えてくれ!

*1:JRお得意の遅延