Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。個の銅バッジ1既に回答として挙げられている以外の違いとして、a++は出来ますがb++はできません。票16文字列がどのようなメモリに配置されるかが異なってきます。"AAA";は、コンパイラが静的記憶期間の(プログラムの実行開始から終了までずっと存在する)メモリ領域に文字列を配置し、それへのポインタをaに代入するというものです。配列の初期化においてのみ""の文字列リテラルはこのようにほかと違う取り扱いになります。そのため、以下のように、変数の寿命を越えると差が出ます。char*の変数の場合、returnしても文字列本体は有効です。puts(f());}一方、配列を使った以下のプログラムでは、未定義の動作になります。関数から抜けると共にオブジェクトbが破棄されるためです。実例としては、デタラメな文字列が出力されたり、クラッシュしたりすることがあります。場合によっては、abcが出力されるものもありますが、偶然だと考えてください。*aと同じと聞いたことがあるが。