В чем разница между строковой константой и строковым литералом в C?

В чем разница между строковой константой и строковым литералом в простом C?

Этот вопрос похож на другой: в чем разница между строковой константой и строковым литералом? ... за исключением того, что один касался Objective-C (используя NSString), а не C.

5 ответов

Решение

Они одно и то же. Просто предпочтение, какое слово вы используете для описания строки.

В проекте C99 от 2007 года используется термин " жало". Термин строковая константа вообще не появляется в черновике.

Я считаю, что строковый литерал - хороший выбор термина, когда мы говорим о "foo" (так же, как 42 - это буквальное число, "foo" - это буквальная строка).

Правописание второго слова используется для описания той же идеи?

Я бы расценил их как одно и то же - альтернативные термины для той же конструкции.

const char * strConst;
strConst = "Hello World";

В этом примере

  • strConst строковая константа
  • "Hello World" является строковым литералом, и обычно хранится в области только для чтения программы.

Литерал и константа означают то же самое, что является обозначением для представления фиксированного значения в исходном коде.

Другие вопросы по тегам