ポインタ変数の値渡し

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ポインタ変数の値渡し

Re: ポインタ変数の値渡し

#4

by るま » 7年前

なるほど、確かに実験してみたほうが良かったかもしれません
お二人ともありがとうございました

Re: ポインタ変数の値渡し

#3

by box » 7年前

るま さんが書きました:ポインタについて勉強したばかりなのですが以下のようにすればaの値が1になるということでよろしいでしょうか?

コード:

p(b);
}
実験してみればいいのに…。printfか何かをかませれば、すぐわかりますよね。

コード:

    printf("%d\n", b);
    printf("%d\n", *b);
とか。

Re: ポインタ変数の値渡し

#2

by hide » 7年前

オシイです
関節演算子 * よりも、後置インクリメントのほうが優先されますので、

コード:

void p(int *c){
  *c++;
}

コード:

void p(int *c){
  *(c++);
}
であるかのように振る舞い、cというポインタ自体を進めてからそのアドレスの変数を呼び出して終わります。
aの値が1になる
 つまり、渡したポインタの指す先の変数を1増やしたいのであれば、
cとして受け取ったポインタの指す変数を取り出して、その値を増やす という形になるように書かないといけないですね

ポインタ変数の値渡し

#1

by るま » 7年前

ポインタについて勉強したばかりなのですが以下のようにすればaの値が1になるということでよろしいでしょうか?

コード:

void p(int *c){
*c++;
}

int main(){
int a=0;
int *b = &a;
p(b);
}

ページトップ