HOME»基本情報技術者試験掲示板»平成29年秋期 午後問9
投稿する

平成29年秋期 午後問9 [1930]

 ぴーともさん(No.1) 
find_palindromeのコードの1行目に
hit = find_char(ith + 1, *ith)
とありますが、ここでのith + 1とはどのような意味になるのでしょうか。
*ithは文字列textのi番目のポイントの番地が格納されると思います。
ith + 1 は問題文を読む限り、文字列が入るみたいですが、なぜこの書き方で文字列が入るか分かりません。
またどのような文字列が入るのでしょうか。
2019.09.18 23:13
管理人(No.2) 
1つ前の行の ith = &text[i] により、変数 ith には text[i] のアドレス値(ポインタ)が格納されています。
文字列は連続したアドレスに格納されるので、ith + 1 は、text[i] の次の文字のアドレスを指します。C言語では文字列型がないので、文字列を引数にしたいときにはその文字列の先頭ポインタを渡すこととなります。find_char の第1引数になっている ith + 1 は検索範囲となる文字列の先頭アドレスを示します。

ith … text[i]が格納されているアドレス
*ith … 当該アドレスに格納されている値
2019.09.19 11:59
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop