アプリ版:「スタンプのみでお礼する」機能のリリースについて

画像において、
なぜwhile(buffer[i]==input[i]と書けないのでしょうか?
input[i]の中身を*pに変換しないとbuffer[i]に代入できないのでしょうか?

「画像において、 なぜwhile(buff」の質問画像

質問者からの補足コメント

  • あの、while(*p == input[i]){
    buffer[i] = *p;
    ...
    }


    while(buffer[i] == input[i]){
    ...
    }
    について。
    上でやっているのはpが示すメモリ領域にある値がinput[i]と同じ値であるか判定し、同じであればpが示すメモリ領域にある値をbuffer[i]に代入する。
    との事ですが、
    pが示すメモリ領域にある値をbuffer[i]に代入する。プログラムの部分はどこでしょうか?
    プログラムにはbuffer[i]=*pは書いてありませんが。

      補足日時:2021/01/28 16:02
  • なるほど*pとinput[i]を比較することが目的であるため、while(buffer[i]==input[i]と書けるが意味がないとわかりました。
    ありがとうございます。

      補足日時:2021/01/28 16:39

A 回答 (7件)

while(*p == input[i]){


buffer[i] = *p;
...
}


while(buffer[i] == input[i]){
...
}
ではやっていることは全く違いますよ。

上でやっているのはpが示すメモリ領域にある値がinput[i]と同じ値であるか判定し、同じであればpが示すメモリ領域にある値をbuffer[i]に代入する。

下でやっているのはbuffer[i]の値とinput[i]の値が同じであるかの判定をしている。
やっていることは全く違う。

あと
>input[i]の中身を*pに変換しないとbuffer[i]に代入できないのでしょうか?

普通にinput[i]の値を代入できますよ。
buffer[i] = input[i];
として代入しても同じ結果になる。while()の段階で*pとinput[i]が同じ値なのでどちらを代入しても同じこと。
(割り込み処理で*pの値が書きかえられた、という場合は除く)
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2021/01/28 15:59

わざわざpと比較してるって事は、buffer[i] とpは値が違うって事なんだよ。



一部分だけを切り出すな!アホのやる事は何処も一緒
    • good
    • 2

比較してる内容が違うじゃん


buffer[i] が、加算される前のpと同じ保証はあるのかい???
違うんだろ!

論理思考力の問題であって、プログラム言語の問題じゃ無いぞ!!
    • good
    • 1

>比較してbuffer[i]に代入するため、画像の書き方をするのでしょうか?



まず、コードを載せるだけではなくて、何をしたいのか書いてください。それがわからないとどう回答していいのかわかりません。
    • good
    • 0

while(buffer[i]==input[i]){


buffer[i]=*p

でも別に構わないよ。

buffer、inputの型とかの定義が違うんじゃ無いの?
だから直接比較が出来ない・・・。
    • good
    • 0
この回答へのお礼

あれ、*pは比較していないのにbuffer[i]に入れて良いのですか?

お礼日時:2021/01/28 16:36

buffer[i]==input[i] は代入ではなく比較です。

    • good
    • 0
この回答へのお礼

ありがとうございます。
比較してbuffer[i]に代入するため、
画像の書き方をするのでしょうか?

お礼日時:2021/01/28 12:51

inputの定義


bufferの定義
pの定義
はどうなってますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!