C 構造体 新しいページはコチラ
提供: yonewiki
(→構造体) |
(→構造体) |
||
123行: | 123行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
上記のように構造体で定義された3つの変数をまとめて、関数に引き渡せるし、構造体を配列にしてしまえば、3つの変数をまとめて配列の要素の数だけ受け渡しできる。サンプルでは配列要素は3つなので、3変数×3要素で、一気に9つの変数を引数として渡すことができている。 | 上記のように構造体で定義された3つの変数をまとめて、関数に引き渡せるし、構造体を配列にしてしまえば、3つの変数をまとめて配列の要素の数だけ受け渡しできる。サンプルでは配列要素は3つなので、3変数×3要素で、一気に9つの変数を引数として渡すことができている。 | ||
+ | |||
128行: | 129行: | ||
− | + | 13行目および46行目の構造体のポインタを引数としているところは、配列の表現を使っても良いので | |
+ | <syntaxhighlight lang="text"> | ||
+ | … | ||
+ | void stDatePrint(stDate* pstDateOutput,int nSize); | ||
+ | … | ||
+ | void stDatePrint(stDate* pstDateOutput,int nSize){ | ||
+ | … | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | の部分は | ||
+ | <syntaxhighlight lang="text"> | ||
+ | … | ||
+ | void stDatePrint(stDate pstDateOutput[],int nSize); | ||
+ | … | ||
+ | void stDatePrint(stDate pstDateOutput[],int nSize){ | ||
+ | … | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | として、表記しても良いですし、ポインタで配列をnew演算子によって生成する部分も配列の変数を使っても良いです。もちろん選択演算子のドット記号を[[C -> アロー演算子|アロー演算子(->)]]に置き換えた表現にしても良いです。 | ||
+ | |||
+ | |||
+ | 構造体を使ったデータ構造プログラミングの例やらは複雑な話になりそうなので、回避したいところですが、それではあんまりなので、もうちょっと踏み込んだ話は、また後日にでも記述します。(2015/02/06書きかけの記事。いつ書くのかは誰の知る由もない。なんなら逃げ出す可能性もあります。しばらくは他サイトのプログラムとデータ構造あたりで検索したり、クイックソート、バブルソート、二分木、リスト構造、ヒープ、バイナリーツリー、バイナリーサーチツリー、マルチウェイツリー、線形探索、循環リスト、双方向リストといったキーワードとCサンプルプログラムあたりでひっかかるサイトを参照して下さい。例によって計算量O(Order)の話や対数についての話題が登場することになりますが、地道に勉強するという遠回りも時間があればやってみて欲しいですね。クイックソートは万能なように思えますが、既にソート済の要素を処理すると遅くなりますので、改良型クイックソートの話について触れている優良な記事に出会えると良いなぁと心配したりします。だったらおまえが説明しろや!って言う声もなんとなく想像しますが…。って言い訳しすぎだろオレ。) |