-PR-
解決済み

C言語のchar ポインタ

  • 困ってます
  • 質問No.45771
  • 閲覧数115
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 54% (23/42)

char ポインタで分からないことがあるのですが・・↓
------
{
char array[7];
char *ptr;

strcpy(array, "abcdef");

ptr = &(array[0]);

printf(" array = %s\n ptr = %s\n", array, ptr);
}
------
これを実行して,
array = abcdef になるのは分かるのですが
ptr = abcdef  になるのはどうしてでしょうか。
ポインタはアドレスを指し示すものですよね。だったら
ptr = にはarray[0]のアドレス('a'のアドレス)が入るのでは
無いんでしょうか・・?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル12

ベストアンサー率 31% (161/506)

printf関数の書式指定で「%s」が使われています。
この「%s」は、そのアドレスから始まる文字列を意味します。
よって、文字列が表示されています。

試しに「%s」を「%x」などに変更してみましょう。
そうすればアドレスが表示されるはずです。
お礼コメント
yuki7505

お礼率 54% (23/42)

%xにしたら出ました!ありがとうございます!!
投稿日時 - 2001-02-28 06:17:02
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル13

ベストアンサー率 26% (511/1924)

確かにそのとおりなんですが、printfのフォーマットが%sになってるので、nullまでの文字列が表示されたのではないでしょうか?
お礼コメント
yuki7505

お礼率 54% (23/42)

ありがとうございます!
投稿日時 - 2001-02-28 06:17:41
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ