質問: 3){ printf("%d\n", *p ==3);};でしょうか? **二つ目** もう一つ、「仮に&str[i]のアドレスを上げながらメモリに入った数値をそれぞれの値を+1したい場合は どう書けばよいのでしょうか? ++str[i++] または str[i++]++ for ( ... ;str[i]++, i++) の方が明快か。と言われたのですが、 アドレスとアドレスの指すメモリの数値を上げるならば、++str[i++] または str[i++]++に&を付けてアドレスとアドレスの指すメモリに入る数値を同時にあげる書き方はないのでしょうか? 要は++&str[i++] または &str[i++]++という書き方はないのでしょうか? ポインタが指すメモリに入った変数の数値と同時に数値を上げるならば アドレスを上げるのに&の演算子は必要なはずです。 ただ、アドレスを上げながらアドレスの指すメモリに入った数値を上げる書き方が ++str[i++] または str[i++]++と決まっているならば従うしかないですが。
回答: str[i]が指し示す位置を動かしつつ、str[i]の中身を変えたいということであれば 以下のように書けばいいだけなんだけど。 ↓の例では配列の中身を全て0で初期化しているので出力結果は全て1になります。 ``` #include int main(void){ int i; int str[5]={0}; for (i = 0; i < 5; i++){ str[i]++; printf("%d\n", str[i]); } } ``` そもそも配列の指し示す位置を動かす為に&を付ける必要があるという思い込みが 間違っていて、単純にstr[0]、str[1]、str[2]としていけば指し示す位置を 変更出来るということが理解出来ていないのかな?