構造体とポインタ
今日は、午前が新入生歓迎会であったためか、欠席者が多い。 機械・電気の出身者は、プログラミングの基礎が弱いので、先週の構造体の解説 の続きを行う。 OOP的使い方ではポインタの利用が多いので、 簡単なポインタの解説も行う。 簡単な構造体と、set(),print()だけの例で、 FN 要素参照は、今週までは、(*p).member 書式の説明に留める。 /FN 呼び出し側が、直観的な呼び出しだけ、要素名が隠蔽化、データに処理を適用の スタイルにできることを示す。来週にはOOP用語を交えた説明を追加予定。
解説をしていると、M・E科では関数の利用も苦手みたい。 返り値や仮引き数・実引き数の話までせなあかんとは、おもわんかった。 FN 関数も使わずにプログラミングの授業で何を勉強してるんだろう….不思議だ… /FN この解説のなかで、値渡し、ポインタ渡しに加えて、参照渡しも説明。
struct Person { char name[20] ; int age ; float height ; } ; void set( struct Person* p , char s[] , int a , float h ) { strcpy( (*p).name , s ) ; (*p).age = a ; (*p).height = h ; } void print( struct Person* p ) { printf( "%s %d %f\n" , (*p).name , (*p).age , (*p).height ) ; } int main() { struct Person saitoh ; struct Person mitsuki ; set( &saitoh , "斉藤" , 39 , 172.3 ) ; set( &mitsuki , "充輝" , 4 , 97.4 ) ; print( &saitoh ) ; print( &mitsuki ) ; }