いちばん失敗した人決定戦

&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したいのですが、アドレスと中身の数値を別々にインクリメントするプログラムの書き方がわかりません。
どうかご教示お願いします。

また、
for( char *p=str; *p; ++p )
{ ++(*p); }
ポインタpのアドレスに入った数値は++pにより増えて、さらに++(*p)の++によりさらに増えるわけですか?
違う場合は
コードの処理過程をわかりやすく教えてください。

もう一つ、
char *p = &(str[0]); とはポインタの指す([0]の)アドレスの番号をポインタpの数値の列として代入するという意味でしょうか?
違うならば処理の過程を詳しく教えてください。

A 回答 (1件)

これもそもそも日本語が分からん。



> アドレスを上げながら

アドレスを上げながら・・・・そんな表現ねぇんじゃねぇの?
アドレスが上がるとか下がるとか・・・そもそもそんな不確かな表現もありません。

大体、そもそも

char str[] = "なんとやら";

があったとして、含まれる文字を+1したい場合、単に

for (i = 0; str[i] != '\0'; i++) {
 str[i] += 1;
}

すりゃあエエ話じゃねぇの?
んで、

「自分で書いてて意味が分からんコードにする」

意味があるのか、と言うのが問題。
だからこの辺の連投になってるわけでしょ?
素直に書けば済む話なんじゃねーの?

「意味が分かりません」

と言うのは、この場合、わざと意味が分からんコードを書いてるのが原因だし、そんな悪癖付ける必要があるのか、っつー問題がある。
コードは明確に書くべき。
じゃねぇと、後で読み返した時大変だぞ。
    • good
    • 0

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