ページ 11

ポインタの使用方法について

Posted: 2011年6月09日(木) 19:13
by LisetteLander
使用方法というかなんというか単発の質問です。

コード:

int x,y=0,*z;
z=&y;
x=y*z;
printf("%d",x);
この場合どうなるのでしょうか?
=y*z;区間にスペースはない物として

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 19:23
by 初級者
ご自分では試していないのでしょうか?

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 19:27
by dic
どうなるかというとコンパイルエラーになります

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 19:36
by LisetteLander
な、なるほど・・・
これは不躾でした。

それともうひとつ、scanf関数のことで質問です。
どうしてこの関数には引数に&が必要なのでしょうか?
scanf関数を使用するときに必ず&を変数の前につけろと聞きました。
stdio.hを造る時にscanf関数のスコープの中で&を必要としない引数の取り方はできたと思います。

ということは第二引数に&(変数)を使わない、もしくは違う物を入れる場合があるということでしょうか?

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 19:54
by non
格納する領域のアドレスを渡しているからです。
配列を渡す場合
例えば
char str[20];
のような場合は
scanf("%s",str);としますから&はつきませんが、
scanf("%s",&str[0]);と書くこともできるので、使わないといえるかどうか・・・

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 20:02
by LisetteLander
なるほどー
ありがとうございました!

Re: ポインタの使用方法について

Posted: 2011年6月09日(木) 21:28
by ISLe
sood さんが書きました:scanf関数を使用するときに必ず&を変数の前につけろと聞きました。
だれがそんな嘘を…。

コード:

int y=0,*z;
z=&y;
scanf("%d",z); /* &を付けてはダメ */
printf("%d",y);