トップページ > プログラム > 2015年02月28日 > 9679fv1E

書き込み順位&時間帯一覧

6 位/258 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000122117



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
450
C/C++の宿題片付けます 168代目

書き込みレス一覧

C/C++の宿題片付けます 168代目
450 :デフォルトの名無しさん[sage]:2015/02/28(土) 19:54:14.87 ID:9679fv1E
質問があります。

下記の構文は正しいんでしょうか?
1行目はわかりますが、2行目はさっぱり意味がわかりません。
**ppcはchar型なのに、=&pc ではアドレスであることに
なってしまうんじゃないでしょうか?

char *pc = "abcdefg";
char **ppc = &pc;

出典「ポインタが理解できない理由」p166
よろしくお願いします。
C/C++の宿題片付けます 168代目
452 :450[sage]:2015/02/28(土) 20:11:59.56 ID:9679fv1E
>>451
ありがとうございます。自分でもう少し勉強します。(^^;)
C/C++の宿題片付けます 168代目
454 :450[sage]:2015/02/28(土) 20:30:09.62 ID:9679fv1E
>>453
ありがとうございます。でも、うううう・・・難解です。修行してきます。
C/C++の宿題片付けます 168代目
455 :450[sage]:2015/02/28(土) 21:09:05.43 ID:9679fv1E
質問です。
>>450の場合、下記は正しいですか?

char *pc = "abcdefg"; について
 pcには文字列へのアドレスが格納(指し示す)されている。
 その指定された文字列の場所(つまり*pc)に "abcdefg"が格納される。

char **ppc = &pc;について
 ppcは、文字列へのアドレスが格納された場所のアドレスを格納するポインタである。
 ppcに格納されたアドレスは、pcのアドレスである。
 つまり、ppcと&pcは等しい。

以上のとおりなら、2行目は下記のように理解していいですか?

 char **ppc;
ppc = &pc;

もし以上のとおりだとすると、1行目と2行目の”=”の意味が違うような気がしますが・・・
C/C++の宿題片付けます 168代目
457 :450[sage]:2015/02/28(土) 21:29:00.92 ID:9679fv1E
>>456

int  i=100;  の場合、iで指定された場所に100が入ります。
int  *k=100; の場合、kはポインタなのでアドレスです。kに指し示されたアドレスの場所に
   数字100が格納されています。k=100ではありませんね。

同様に、
char *pc = "abcdefg"; の場合も同じです。
   pcはポインタなのでアドレスです。pcに指し示されたアドレスの場所に
   文字列"abcdefg"が格納されています。pc="abcdefg"ではありませんね。

ところが、・・・
 char **ppc = &pc; の場合、
 ppc = &pc となるっていうことですね・・・・??!!
**ppc = &pcとなるべきではないか、と思うのですが・・・

熟練された方にとって当たり前なら、それはきっと正しいのでしょうけど、
うまく頭が整理できず困っております・・・・。
C/C++の宿題片付けます 168代目
466 :450[sage]:2015/02/28(土) 22:16:19.11 ID:9679fv1E
みなさんありがとうございます。

>>460 情報感謝
>>462 なるほど、確かに混乱していました。
>>463 ありがとうございます。
>>465 マジレス、本当ですか?
C/C++の宿題片付けます 168代目
467 :450[sage]:2015/02/28(土) 23:43:49.86 ID:9679fv1E
学生のとき、「ポインタって、配列と同じだな!」って知ったかぶりして
言ってた友達がいたけど、あれは間違っていたな。今頃になってよくわかってきました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。