インタビュアーの質問にはタイプミスが含まれています。演算子は意味的に有効ではありません。タイプミスを仮定すると、意図した質問を解釈できます:
「char a[] = "string";」の違いは何ですか?および "char *p = "string";"?
配列とポインター
これらの宣言の主な違いは、作成されるデータ構造にあります。 :
主な違い
Feature | Array | Pointer |
---|---|---|
Data Type | Character Array | Character Pointer |
Modificability | Modifiable | Immutable |
Size Determination | sizeof can be used | strlen function must be used |
Usage | Used when the string content needs modification | Used when the string content remains constant |
使用上の考慮事項
シナリオに応じて、正しいデータを選択する必要があります構造体:
標準コンプライアンス
C では、「const」キーワードなしで文字列リテラルを使用することは非推奨になりました。したがって、正しい宣言は次のようになります。
C 対 C注
これらの概念は C ではなく C に特に適用されることに注意してください。 C では文字列の処理が異なり、前述のコード構造は文字列の操作には使用されません。
以上が`char a[] = 'string';` と `char *p = 'string';` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。