OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

printf("%x", str)

  • 暇なときにでも
  • 質問No.183301
  • 閲覧数749
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 59% (194/328)

#include <iostream.h>
main(){
char a[] = "02";
char b[] = "20";
printf("%#x %#x", a, b);
}

結果 → 0x64fe01 0x64fdfe

もし結果が 0x30,0x32 0x32,0x30
という感じなら分かるのに
02 がどうして 64fe01 なんですか?
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 53% (41/76)

>02 がどうして 64fe01 なんですか?

恐らく、変数a,bのアドレスが表示されていると思います。
%xは与えられた変数の値を16進表示するのでaと書いてprintf渡すと、変数aは配列ですので、aと書けばそのポインタの値(=メモリアドレス)がprintfに渡されることになります。
中身を表示したいのであれば、

printf("%#x %#x", *a, *b);

と書けばうまくいくはずです。
お礼コメント
A__

お礼率 59% (194/328)

cout では a で 02 が表示されるのに、
printf( ) の場合は a だとアドレスになるから
printf( ) の場合は *a にしないと値が得られないんですね。
投稿日時 - 2001-12-11 21:06:46
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル9

ベストアンサー率 21% (23/106)

「char a[]」は、「char *a」と同じくポインタ変数の定義です。 実際に領域を確保するわけではありません。 従いまして、char a[] = "02"; では、先頭の"0"のアドレスがaに代入されます。この結果は、ポインタ型変数a,bのアドレスを表示したにすぎません。 ...続きを読む
「char a[]」は、「char *a」と同じくポインタ変数の定義です。
実際に領域を確保するわけではありません。
従いまして、char a[] = "02"; では、先頭の"0"のアドレスがaに代入されます。この結果は、ポインタ型変数a,bのアドレスを表示したにすぎません。
お礼コメント
A__

お礼率 59% (194/328)

ありがとうございます。
表示されていたのはアドレスだったと分かりました。

#include <iostream.h>
main(){
char a[] = "02";
char b[] = "20";
cout << &a << '\n';
cout << &b << '\n';
printf("%#x %#x", a, b);
}
投稿日時 - 2001-12-11 21:03:37


  • 回答No.3

文字列を受け付けるのは %s だけです。 なので、文字列を 0x30 0x32 と表示するのでしたら、ループなどにするしかないです。 char *p; for (p = a; *p; p++) { printf("%#x ", *p); } ...続きを読む
文字列を受け付けるのは %s だけです。
なので、文字列を 0x30 0x32 と表示するのでしたら、ループなどにするしかないです。

char *p;
for (p = a; *p; p++) {
printf("%#x ", *p);
}
お礼コメント
A__

お礼率 59% (194/328)

0x30 0x32 と表示させることもできました。

#include <iostream.h>
main(){
char a[] = "02";
char *p;
for (p = a; *p; p++) {
printf("%#x ", *p);
}
}
投稿日時 - 2001-12-11 21:16:59
このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ