• ベストアンサー

関数での配列の扱いかたについて教えてください

http://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/H17a2/pm10.html この問題の10行目の void make_fare_table(int num, double *dist_list, COSTUNIT *cost_list, int **fare_table ) { の * dist_list ところなんですが、関数で配列を受け取るとき 文字列の場合は *dist_list ですが、 この問題の場合 dist_listは距離の配列、つまり数値の配列だから、dist_list[]で受け取るのだと思うのですが *dist_listとなっているのは、なぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まず、 > 関数で配列を受け取るとき 文字列の場合は *dist_list ですが、 というのが勘違いのもとです。 配列を関数で受ける場合には、 型 *list でも、型 list[] でも、いずれでもOK です。ついでにいえば、同じように使えます。 char list[] で受けても、問題はありません。 配列は関数の引数として渡された場合、配列の先頭を指すポインタに変換されますので、 型 *list の方がよさそうではありますが。

yuyakiyo
質問者

お礼

すばやい解答ありがとうございました。 ようやく理解できることができました。

その他の回答 (1)

  • rigidbody
  • ベストアンサー率60% (20/33)
回答No.2

>*dist_listとなっているのは、なぜでしょうか? その人の流儀だからです。だから気にする必要は無いです。どちらの表現でも同じように翻訳されるからです。 が、私ならdist_list[]を採ります。そちらの方が文書性が高いと思うからです。 *表現では、単一変数へのポインタなのか 配列の先頭を渡しているのかを即座に推測出来ません。が、[]なら後者であろう事がすぐに分かります。 両表現のコストが同じなら、少しでも儲けの大きい方を採った方がお得感があるでしょう。だから後者を使いますねぇ。

yuyakiyo
質問者

お礼

解答ありがとうございます。 今回は早いもの順でポイントをつけさせていただきました。すいません。丁寧に答えていただきありがとうございます。

関連するQ&A

  • 平成17年度春の午後問題について教えてください

    ttp://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H17a2/pm06.html の問題なのですが、空欄dが分かりません。 char_listはvoid print_string 関数内でアドレスで 受け取り、int word_width 関数でもアドレスで受け取っていると思うのですが、違うのでしょうか?

  • 平成14年秋 問10 四角形 C言語

    http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H14b2/pm10.html 手がかりはどのように 求めればいいのでしょうか? 手が届かないです

  • CASLの問題

    http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H11a2/pm10.html で被乗数を14ビットシフトの意味を理解できなく この問題を解けません どなたかご教授を

  • 初期化について教えてください

    http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H13b2/pm10.html この問題のプログラムでコードの初期化の方法が分からないので教えてください 例えば、配列 M[0][1]をROADとするにはどうしたらいいのでしょうか? M[0][1] = ROAD; としたとしても、M[0][1] は入り口(ENTRANCE)の役割もあるので、上みたいにそのまま代入しても上手くいかないのですが、どうやっていいのか分かりません。 お願いします。

  • 基本情報について

    このサイトの問4の3設問ができなくて困っています。わかるかたご教授よろしくお願いします。 http://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/H11a2/pm03.html

  • トランザクション処理性能の問題

    このサーバの TPS の上限値は” ”の表現で 上限値は何を意味するのでしょうか? どなたか 解説を? http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H13b2/pm03.html

  • インクリメント

    情報処理の問題で一つわからない点があります http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H19a2/pm10.html 上記HPの「 d 」の答えなのですが rank++ と rank = i + 1 答えはどちらでもかまわないのではないでしょうか? インクリメントを使っての答えは間違いとなりますがどうして??? 教えてください

  • Borland C++ Compilerで画像を扱うには

    基本情報技術者検定の問題でhttp://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H9a2/pm07.html のプログラムをBorland C++ Compilerで作りたいのですが、画像が扱えないみたいなので調べてみたところ http://www.boutell.com/gd/のライブラリがあれば 画像が扱えるとどこかで見たのですが、これって Borland C++ Compilerにも使えるのでしょうか?

  • 文字列の入力について

    http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H11b2/pm11.html このプログラムを完成させたいのですが、 例えば、「abc dfg hij ・・・」とscanfで文字列入力した場合、空白以降(スペース)が読み取れません。 (「abc」しか読み取れません) スペース以降の文字列もキーボード入力できるようにするにはどうしたらいいのでしょうか?

  • CASLII(基本情報)の過去問がわかりません!

    現在、基本情報技術者試験突破のため、CASLIIの過去問を解いているのですが、理解できなくて困ってます。 平成13年春期の問8です。 http://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/H13a2/pm08.html 特に6行目のシフト演算命令以降が何をしてるのかがさっぱりです。。。 教えて頂けると嬉しいです・・・ お願いします!!

専門家に質問してみよう