#4
by みけCAT » 8年前
takumi さんが書きました:一回目のfor文で *pminは pmin = p; と定義していたことから、int*pを参照し
pminはpの値を代入されるだけで、Verilogのassign文のような参照はしません。
takumi さんが書きました:int*pは実引数x[0]を
受けるので
x[0]ではなく&x[0]を受けます。
takumi さんが書きました:pmin は 22となりますが
pminが22となる可能性は低いです。
*pminが22となります。
takumi さんが書きました:二回目のfor文の if(*pmin > *p)の部分では、*pminは pmin = p; → p+1より
pmin = p;はfor文の外にあるので、「二回目のfor文」の中や「一回目のfor文」と「二回目のfor文」の間で実行されることは(処理系が狂っていなければ)ありません。
takumi さんが書きました:(int*p)+1 → x[1] → 58
と探すような処理は行われず、一回目でpmin = 22 と処理が済んだら 二回目以降は特にコンピュータが処理を探して行う部分ではないという事ですか?
すいません、意味がよくわかりません。
ただし、pmin = 22という処理を行う可能性は低いので、これは前件が偽である条件文とみなすことができ、
「一回目でpmin = 22 と処理が済んだら 二回目以降は特にコンピュータが処理を探して行う部分」であるということができそうです。
takumi さんが書きました:それとも、p++より、p+1となっても、
何がですか?
takumi さんが書きました:pは配列とは考えられず
このコードでは行いませんが、pを指すポインタの計算において、pは1要素の配列と考えることができます。
takumi さんが書きました:隣の変数orアドレスを確保しない為
確かに、隣の変数orアドレスは確保されていないので、(&p + 1)のデリファレンスはしてはいけません。
※(p + 1)ではなく(&p + 1)の話です!ここでは使われていません!
takumi さんが書きました:x[0]がx[1]に変わるようなことが起きず無効となり
すいません、意味がよくわかりません。
x[0]がx[1]に変わるようなことは普通に起こらないと思いますが、何が無効になるのですか?
takumi さんが書きました:処理が行われてもずっと22のままなのですか?
何がですか?
[quote="takumi" id=3,19110,144925]一回目のfor文で *pminは pmin = p; と定義していたことから、int*pを参照し[/quote]
pminはpの値を代入されるだけで、Verilogのassign文のような参照はしません。
[quote="takumi" id=3,19110,144925]int*pは実引数x[0]を
受けるので[/quote]
x[0]ではなく&x[0]を受けます。
[quote="takumi" id=3,19110,144925]pmin は 22となりますが[/quote]
pminが22となる可能性は低いです。
*pminが22となります。
[quote="takumi" id=3,19110,144925]二回目のfor文の if(*pmin > *p)の部分では、*pminは pmin = p; → p+1より[/quote]
pmin = p;はfor文の外にあるので、「二回目のfor文」の中や「一回目のfor文」と「二回目のfor文」の間で実行されることは(処理系が狂っていなければ)ありません。
[quote="takumi" id=3,19110,144925](int*p)+1 → x[1] → 58
と探すような処理は行われず、一回目でpmin = 22 と処理が済んだら 二回目以降は特にコンピュータが処理を探して行う部分ではないという事ですか?[/quote]
すいません、意味がよくわかりません。
ただし、pmin = 22という処理を行う可能性は低いので、これは前件が偽である条件文とみなすことができ、
「一回目でpmin = 22 と処理が済んだら 二回目以降は特にコンピュータが処理を探して行う部分」であるということができそうです。
[quote="takumi" id=3,19110,144925]それとも、p++より、p+1となっても、[/quote]
何がですか?
[quote="takumi" id=3,19110,144925]pは配列とは考えられず[/quote]
このコードでは行いませんが、pを指すポインタの計算において、pは1要素の配列と考えることができます。
[quote="takumi" id=3,19110,144925]隣の変数orアドレスを確保しない為[/quote]
確かに、隣の変数orアドレスは確保されていないので、(&p + 1)のデリファレンスはしてはいけません。
※(p + 1)ではなく(&p + 1)の話です!ここでは使われていません!
[quote="takumi" id=3,19110,144925]x[0]がx[1]に変わるようなことが起きず無効となり[/quote]
すいません、意味がよくわかりません。
x[0]がx[1]に変わるようなことは普通に起こらないと思いますが、何が無効になるのですか?
[quote="takumi" id=3,19110,144925]処理が行われてもずっと22のままなのですか?[/quote]
何がですか?