C言語で配列のアドレスと値を出力させたのですが
値がおかしいです。
c
1#include <stdio.h> 2 3int main(void) { 4 int str[] = {'1','2','3,','4','5'};//宣言と初期化。 5 printf("アドレス・・・%p 数列・・・%d\n",str,str[1]);//str・str[0]のアドレスとstr[1]の値(2)が出ると予想したが・・・。 6 return 0; 7}
実行結果
c
1アドレス・・・0053F864 数字・・・50
これは何が原因なのでしょうか?
分からないので教えてください。
それがどういうふうにおかしいのか説明しましょう
どー見ても正しいですが。
つまり、この実行結果は正しいということですか?
どこが違うんでしょうか。
2が出力されることを期待したのですが
50が出たからです。
参考記事
https://webkaru.net/clang/array-element-output/
ご指摘のとおりコード自体には問題がなかったようです・・・
それで2を出したいならコードが間違ってます。
繰り返しますが、こんな質問を繰り返すより、もちっとCの基本を学びましょうよ
これでも参考書の
順にやっているのです・・・
いままでの質問でも
配列の認識が甘々なので配列をやっています。
ちなみに参考書は何をお使いですか?
苦しんで覚えるC言語・・・です。
辞書として使っていましたが
最初から読み直しています。
書籍版は持っていませんが、今回の件はWeb版だと https://9cguide.appspot.com/14-01.html の「文字コード」のあたりですかね。
本の中では読んだ順に説明済の項目だけが出てくるように構成するでしょうが、世の中のプログラムはあなたが本を順にどこまで読んだかなんてお構いなく、「C言語全部」の範囲でプログラムを書きます。その意味では、せめて入門書全部に目を通し終えてから他のプログラムに手を出すようにしたほうが良さそうに思います。
これだけの頻度で聞きまくらなきゃいけない、というのはやり方として間違っているんじゃないか、と疑念を持たざるを得ません。
ありがとうございます。
やはり一通りすべてに目を通してから
実際にプログラムを組んだほうがいいのですね。
回答3件
あなたの回答
tips
プレビュー