"AAA";とすべきです。char[]なので、char*への変換はすべきではありません。(多くのコンパイラは警告を出してくれると思います。'X';はコンパイルエラーになってくれるので、未定義動作をコンパイル時点で回避できます。|6他の回答で説明は十分だと思われますが、混乱してしまう原因の一つに関数の引数の場合があります。これだけはポインタで書こうが配列で書こうがどちらもポインタの型として認識されます。配列の方は明示的に要素数を指定することも可能です。a[])はどちらも同じ意味です。補足というか蛇足ですが、これが二次元以上の配列を関数に渡すときは少し事情が違ってきます。詳しくは次のリンクを参考にしてください。http://www.nurs.or.jp/~sug/soft/tora/tora10.htmあと、関数とは別の話で、ローカル変数として配列で宣言時に文字列を代入できるのに、一旦何も代入せずに配列で宣言した場合はstrcpy()などを使わないと配列に入れられない等も、最初は理解に苦しむポイントです。ポインタの場合は宣言時以降も文字列をそのまま代入することが可能です。|5「文字列リテラル」の説明を補足しておきます。ソースコード中で文字列リテラルを使うと、実行時にはこの文字列は書き換えが禁止された静的な領域に配置されます。ポインタに文字列リテラルを代入した場合は、この静的領域にある文字列の先頭アドレスが直接代入されるので、この文字列を変更することは出来ません。配列に文字列リテラルを代入した場合はその文字列のコピーが配列に格納されるため変更が可能です。文字列リテラルで受けた文字列をあとで変更する必要があれば配列で受けなければなりません。aは"AAA"という領域の先頭アドレスを格納しているポインタ変数です。b[]は"BBB"という領域を格納している配列です。使う側はあまり気にしなくても使えますが、厳密には異なるものです。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。char配列をbit列に直したい0c++でisalpha関数を用いてcharの配列の中に含まれるアルファベットの数を表示する3%sで配列の中身を表示さる時に、配列の先頭要素のアドレスを渡せば'\0'までの文字が表示される認識ですが、そうならない原因にがわからない。2標準ライブラリの関数の引数の定義の読み解き方がわからない。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。