掲示板ランキング  心理学(相性・易占)  心理学(読みもの)  心理学(参考図書・白書)


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6775

ポインタ変数について教えてください。
投稿者---Yamano(2006/11/22 21:02:11)


ポインタ変数を「int *a_pt」と定義したとき、
「a_pt」はアドレス自体で「*a_pt」はアドレスに入ってる内容だと思ったのですが、

下のプログラムで「scanf」に3を入れると、「printf」でそのまま3が表示されます。
scanfで「a_pt(アドレス)」に3が入り、printfで「*a_pt(内容)」が出るので、
表示されるのはアドレス00000003に入っている内容だと思ったのですが、
何故違うのしょうか?教えてもらえませんでしょうか?

void main()
{
    int a ;
    int *a_pt;
    a_pt = &a;

    printf("数字を入れろ\n");
    scanf("%d",a_pt);
    printf("入れた数字は%d",*a_pt);
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ポインタ変数について教えてください。 6778 KING・王 2006/11/22 21:30:27
<子記事> Re:ポインタ変数について教えてください。 6779 επιστημη 2006/11/22 21:35:08
<子記事> Re:ポインタ変数について教えてください。 6780 2006/11/22 21:42:41


No.6778

Re:ポインタ変数について教えてください。
投稿者---KING・王(2006/11/22 21:30:27)


>scanfで「a_pt(アドレス)」に3が入り、printfで「*a_pt(内容)」が出るので、

ここが違います。
例示の場合、scanfで入力された値が、a_ptがさしているアドレスの中(?)に格納されます。
そして、printfでは、*a_ptと指定することで、a_ptの値(アドレス)の中(?)に格納されている値を表示するので、
結果的にscanfで入力された値が表示されます。

scanfを用いて、int型の変数aに値を入力したい場合、
下記のコメントの意味が理解できていますか?
int a;
scanf( "%d", a ); // これはでは、aには値が入らない。
scanf( "%d", &a ); // これで、aに値が入る。





この投稿にコメントする

削除パスワード

No.6781

Re:ポインタ変数について教えてください。
投稿者---Yamano(2006/11/22 21:50:27)


レスありがとうございます。
昨日からプログラムを勉強し始めたんですが、ここは初心者質問でも大丈夫でしょうか?
int a;
scanf( "%d", a ); // これはでは、aには値が入らない。
scanf( "%d", &a ); // これで、aに値が入る。

これを見て少し調べたところ、何故違うのかわかりました!
scanf関数はそもそも、引数に変数じゃなくてアドレスを指定しなければいけないということですよね。


この投稿にコメントする

削除パスワード

No.6779

Re:ポインタ変数について教えてください。
投稿者---επιστημη(2006/11/22 21:35:08)


>ポインタ変数を「int *a_pt」と定義したとき、
>scanfで「a_pt(アドレス)」に3が入り、

入りません。

scanf("%d",a_pt); だから。




この投稿にコメントする

削除パスワード

No.6780

Re:ポインタ変数について教えてください。
投稿者---・(2006/11/22 21:42:41)


scanf関数の中で入力した値は、
第2引数で指定したポインタ変数の
値として持っている場所に入ります。

例では、a_ptに3が入るのではなく、
a_ptの値、つまりa_ptが指している場所
(aのアドレス)に3が入ります。
a_ptが指している場所の内容(3という値)を
取り出すために、*a_ptという表現を用いています。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ