【初心者歓迎】C/C++室 Ver.48【環境依存OK】
at TECH
280:デフォルトの名無しさん
08/02/09 20:47:05
>>276
> p = &a
> cout << p;
> では、単純に変数aのアドレスが出力されるだけですよね。
(aがたとえば int であるとして。)
それは間違い。
> p = &a
これをやった時点でコンパイラは型が違うとエラーにする。
p = reinterpret_cast<&a>として無理やりキャストをしてpに int * の値を入れることは可能。
>処理系はどうやってpが「変数」のポインタだと判断するのでしょうか??
pを宣言する際に、その型を char* と指定しているから、pが実際にさす先に実際にあるものが
charの配列であっても、int型の値であっても、コンパイラはcharの文字列であると扱う。
aの値がたまたま有効な文字の文字コードと'\0'が並んだ物となっていれば、該当する文字列として表示されるし、
そうでなければ制御コードを出力したり文字化けしたりする。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4987日前に更新/249 KB
担当:undef