ページ 11

ポインタについて・・・その2

Posted: 2006年12月12日(火) 17:41
by 困ったさん
先程はありがとうございました。
今度は「倍精度実数型変数aと倍精度実数型ポインタ変数pを定義し、以下の動作を
行なうプログラムを作成しなさい。
①キーボードから実数aの値を読み込み、aに格納する
②aの値とaのアドレスを画面表示する
③aのアドレスをpに代入しておき、pを通じてキーボードから実数を読み込む
④pの指し示す先の要素の値とpの値を画面表示する」というものです。

今現在では

#include<stdio.h>

int main(void){

double a,*p=&a;

printf("実数aを入力 ->");

scanf("%lf",&a);

printf("a=%f &a=%p\n",a,&a);

return 0;

}

というところどまりで③と④の意味がよくわからなくて困っています。
この後どうすればいいのでしょうか?

Re:ポインタについて・・・その2

Posted: 2006年12月12日(火) 17:47
by keichan
scanf("%lf",p);
printf("*p=%f p=%p\n", *p, p);

をreturn 0;の直前に入れてみてください

Re:ポインタについて・・・その2

Posted: 2006年12月12日(火) 17:49
by 困ったさん
scanfのpの前に&は必要ですか?

Re:ポインタについて・・・その2

Posted: 2006年12月12日(火) 17:59
by keichan
いえ、必要ありません。

Re:ポインタについて・・・その2

Posted: 2006年12月13日(水) 12:38
by 困ったさん
つまりこういうプログラムで大丈夫でしょうか?

#include<stdio.h>

int main(void){
double a;
double *p;
p=&a;
printf("実数aの値を入力 ->");
scanf("%lf",&a);
printf("a=%f &a=%p\n",a,&a);
printf("実数を入力 ->");
scanf("%lf",p);
printf("*p=%f p=%p\n",*p,p);
return 0;
}

Re:ポインタについて・・・その2

Posted: 2006年12月13日(水) 13:05
by keichan
それでいいと思いますが、何か期待しているのとは違う値が
出力されたのですか?

Re:ポインタについて・・・その2

Posted: 2006年12月13日(水) 13:14
by 困ったさん
いえ、pとaは同じ実数を入力した場合同じ値が出ればいいんですよね?

Re:ポインタについて・・・その2

Posted: 2006年12月13日(水) 13:43
by keichan
その通りです。

Re:ポインタについて・・・その2

Posted: 2006年12月13日(水) 14:06
by 困ったさん
はい。そうなりました。みなさんありがとうございましたm(__)m