電子書籍の厳選無料作品が豊富!

ちなみに、for (i = 0; str[i] != 0; str[i++])のstr[i] != 0;は値がstr[i]に数値の0が入るまでstr[i++]、すなわち、&str[i]のアドレスの指定するメモリの数値を+1するという事でしょうか?

仮に&str[i]自体のアドレスを+1して上げながらメモリに入った数値をそれぞれの&str[i]のアドレスのメモリに入った値を+1したい場合は
どう書けばよいのでしょうか?

例題のプログラムを用いて説明して頂けるとありがたいです。

それとも、str[i]はポインタのアドレスに入る数値を表しますが、あるアドレス(例えばアドレス1)のメモリの数値しかあがりません。
では、ほかのポインタのアドレス(例えばアドレス2)のメモリの数値を上げたい場合は
新しくstrA[i]と作り、
for文で(*(&str))++と(*(&str A))++の二つを作ればよいのでしょうか?

出来ればプログラムを書いて頂けるとりかいしやすいです。

A 回答 (1件)

たぶんやりたいことは


for( i=0 ; str[i]!='\0' ; i++ ) {
}
でしょう。このループでは、strで示された文字列の最後ヌル文字='\0'までループを回します。アドレス str から i 番目のメモリの数値は str[i] です。
ちなみにstr[i]と*(str+i)は同じアドレスの値を示します。

for (i = 0; str[i] != 0; str[i++]) については、str[i]!=0がヌル文字では無いのでダメ、str[i++]は意味がないので i++ のみで良いです。
    • good
    • 0

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