3

この割り当てが可能な理由を教えてください。

char const *c = "Hello";
c = "there!";

内容を変更できない場所を指していませんか。私が理解できる限り、それは別のオブジェクトを作成し、 c がそれを指すようにしています。本当ですか。

これに関する他のハイライトをいただければ幸いです。

4

6 に答える 6

4

はい、constその左側にあるものすべてに適用されます (左側に何もない場合を除く)。

c別の文字列を指しているだけです。

于 2013-06-18T04:25:48.390 に答える
0

宣言を正しく解釈するには、右から左に読み取ります:cは定数へのポインタcharです。

于 2013-06-18T04:34:59.953 に答える
0

char const *c = "Hello";定数へのポインタです。つまり、そのポインターが指すコンテンツは変更できませんが、ポインターは変更して別のメモリ位置を指すことができます。

注 「Hello」は文字列リテラルです。が与えられていても、char *c = "Hello";コンテンツを変更しようとすることは未定義の動作です。すなわちc[0] = 'x'

于 2013-06-18T04:29:18.523 に答える