- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語関数の(1)~(5)までの部分が何をやっているのかよく分からない)
C言語関数の意味不明な部分について
このQ&Aのポイント
- C言語関数の(1)~(5)までの部分が何をやっているのかよく分からない
- C言語関数の(1)~(5)までの部分が何をやっているのかよく分からないので、どなたか解説をお願いします。
- C言語の関数の(1)~(5)までの部分の意味が理解できません。解説をお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1) *p1と*p2が「違った」場合に*p1から*p2を引いた結果を返している。 つまり *p1が*p2より大きいなら非0の正の数を、 *p1が*p2より小さいなら非0の負の数を、返す。 と言う事。 (2) while ((*s1++ = *s2++) != 0) ; と同等。つまり while ((*s1++ = *s2++) != '\0') ; と同等。 if (a != 0) が if (a) と書けるのと同じで「a」の部分が代入文の「a = b」になっても「(a = b) != 0」の意味になる。 (3) while ((*p1 != '\0') && (*p2 != '\0')) と同等。 if (a != 0) が if (a) と書けるのと同じ。 (4) p1 = p1 - (p2 - s2 - 1); と同等。 p1から1を引くと「ポインタが1文字戻る」ことになり、それは「--p1」と書く事も出来るし「p1 = p1 - 1」と書く事も出来るし「p1 -= 1」と書く事も出来る。 従って「p2 - s2 - 1文字分、p1のポインタが前に戻る」事になる。 (5) (2)に同じ。
その他の回答 (2)
- moco_to_moco
- ベストアンサー率32% (22/68)
回答No.3
参考までに。 >(2)、(5)の最後に;が付いているのはどういう意味なのでしょうか?? C言語では式の終わりに「;」をつけなければなりません。 ただしif文、for文、while文、dowhile文では、文内に処理がない場合は下記のように書くこともできます。 while(a==b){} while(a==b); この二つは同じです。
- asuncion
- ベストアンサー率33% (2127/6290)
回答No.2
C言語の文は、最後に必ずセミコロンを書かねばなりませんね。
補足
(2)、(5)は同様の質問でしたね。失礼いたしました。 (2)、(5)の最後に;が付いているのはどういう意味なのでしょうか??