無題

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

無題

#1

投稿記事 by まじかる » 16年前

最近C言語を勉強しはじめたのですが(プログラミングの)、ポインタの所で理解できない部分があって困っています。

おそらくどの参考書にも載っているポインタを使って変数を交換する話なのですが(高橋麻奈著:「初めてのC」という本を使っています)

swap関数を

void swap(int *pX,int *pY){

}

で定義し、main関数の中で

swap(&num1,&num2)

として実引数のアドレスを渡しているのですが、疑問なのはint *pXの*pXはポインタではありますがあくまでint型の整数であり、int型整数にint型アドレスを渡す、やってよいのでしょうか。

例えばint *pX=&num1というのは左辺がint型整数で、右辺はアドレスであり、まずいと思うのですが……

すいません。書いててよくわからなくなってしまいました。どなたかよろしくおねがいします。

non

Re:無題

#2

投稿記事 by non » 16年前

int *pX は、pXはポインタ(アドレスが入る変数)でそのアドレスが指しているところの
番地にはint型の数値が入っているという意味です。
int *pX=&num1 は、
int *pX;
pX=&num1;
の2行を1行に書いていると考えるといいです。

まじかる

Re:無題

#3

投稿記事 by まじかる » 16年前

なるほど、理解できました。ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る