基本情報技術者検定の平成13年度秋期午後問題について
http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H1 …
この問題のポインタの使いかたについて疑問があるのでお願いします。
まず、12,13行目からmlstr=mlstrのアドレスとして扱っています。そして15行目でmlstr = parse_ml_data(mlstr + 1, 1);関数を呼び出し
そして16行目のchar *parse_ml_data(char *mlstr, int level)関数でmlstrのポインタとして受け取っています。
よって、この関数内では12,13行目で使われているmlstrのポインタを表すので、mlstr=mlstrの値を表すのではないかと思うのですが、22行目などからアドレスで扱っているようになっています。
ポインタについていまいち自信がもてないので、よろしければどこか間違って解釈いるところがれば、教えてください。お願いします。
回答(1件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.1ベストアンサー20pt
結論からいうと、parse_ml_data関数内の「mlstr」はポインタで、「*mlstr」はポインタの中身だよ。
parse_ml_string関数内に書かれている
mlstr = parse_ml_data(mlstr + 1, 1);
の第一引数「mlstr + 1」はparse_ml_data関数の宣言文
char *parse_ml_data(char *mlstr, int level)
の第一引数にあたるわけなんですけど、第一引数は「*mlstr」ではなく、「mlstr」なのです。
だからこの関数の宣言文を
char *parse_ml_data(char* mlstr, int level)
っていう風に書くとわかりやすいんですよね。
私もここでよく悩みました。
しかし文章のみで説明するというのは難しいです。
質問と回答があってますでしょうか?
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
- ☆転職に有利そうな資格ランキング☆
-
????????
-
司法書士
-
税理士
- →転職に有利そうな資格をチェック!
- 「いつかやりたかった」英語を今!
- 人気の英会話講座を今すぐチェック
-
ビジネス会話も短期間でスキルアップ!
-
J-SHINE認定 小学校英語指導資格に注目!
-
TOEICで満点取得した人から極意を学ぶ…
- →自分に合った英会話を探す
- 大学受験の強い味方「代ゼミTVネット」
-
自宅ではPCで。自習室ではスマートフォンで。代ゼミの授業がいつでもどこでも受講できます!

- →人気講座ランキング









日常英会話、ビジネス英会話、旅行、留学、TOEICRテスト・小学校英語指導者資格取得コースまでサポート!
恋愛から仕事まで、心理テストであなたの深層心理に隠れた姿をチェック!

