No.2ベストアンサー
- 回答日時:
>02 がどうして 64fe01 なんですか?
恐らく、変数a,bのアドレスが表示されていると思います。
%xは与えられた変数の値を16進表示するのでaと書いてprintf渡すと、変数aは配列ですので、aと書けばそのポインタの値(=メモリアドレス)がprintfに渡されることになります。
中身を表示したいのであれば、
printf("%#x %#x", *a, *b);
と書けばうまくいくはずです。
cout では a で 02 が表示されるのに、
printf( ) の場合は a だとアドレスになるから
printf( ) の場合は *a にしないと値が得られないんですね。
No.3
- 回答日時:
文字列を受け付けるのは %s だけです。
なので、文字列を 0x30 0x32 と表示するのでしたら、ループなどにするしかないです。
char *p;
for (p = a; *p; p++) {
printf("%#x ", *p);
}
0x30 0x32 と表示させることもできました。
#include <iostream.h>
main(){
char a[] = "02";
char *p;
for (p = a; *p; p++) {
printf("%#x ", *p);
}
}
No.1
- 回答日時:
「char a[]」は、「char *a」と同じくポインタ変数の定義です。
実際に領域を確保するわけではありません。
従いまして、char a[] = "02"; では、先頭の"0"のアドレスがaに代入されます。この結果は、ポインタ型変数a,bのアドレスを表示したにすぎません。
ありがとうございます。
表示されていたのはアドレスだったと分かりました。
#include <iostream.h>
main(){
char a[] = "02";
char b[] = "20";
cout << &a << '\n';
cout << &b << '\n';
printf("%#x %#x", a, b);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語にて構造体のメンバがNULL...
-
char*を初期化したいのですが
-
コマンドライン引数 *argv[]は...
-
C言語のintとcharの違いってな...
-
char 文字列型 の表現範囲が-12...
-
CStringからchar*への型変換に...
-
小数点入りの文字列をfloat型に...
-
エクセルのMID関数は、C言語では?
-
ポインタを使用 [数字列を数値...
-
C言語:小文字を大文字に変換す...
-
文字列のswap
-
WritePrivateProfileString
-
csvファイルをfscanfで読み込む...
-
WM_CHAR or WM_KEYDOWN の「wPa...
-
char AA[]{"全角文字"};から"全...
-
fstream型オブジェクトを関数の...
-
文字列str内の全ての数字を...
-
const char* s1とただのchar s1...
-
C言語で文字列をかえす正しい書...
-
動的メモリの初期化方法について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
小数点入りの文字列をfloat型に...
-
C言語のプログラムについてです
-
strcat関数を自作したいです
-
fstream型オブジェクトを関数の...
-
new charとnew char[N]の違いは?
-
DWORDとcharの変換
-
文字列の途中から途中までを抽出
-
char 文字列型 の表現範囲が-12...
-
const char* s1とただのchar s1...
-
wsprintf( ポインタ , "%d" , "...
-
c言語でポインタ変数を用いた配...
-
char型にint型の数値を代入する。
-
C言語で文字列をかえす正しい書...
-
C++17で、unsigned char * 配列...
-
共用体について
-
エクセルのMID関数は、C言語では?
おすすめ情報