Const char* против const char[] ⇐ C++
Const char* против const char[]
Насколько я знаю, это строковый литерал типа «Hello»
считается char* в C и const char* в C++, и для обоих языков строковые литералы хранятся в только для чтения память.(поправьте меня, если я ошибаюсь)
#include int main (недействительный) { константный символ* c1; константный символ* c2; { const char* source1 = "Привет"; с1 = источник1; const char source2[] = "Привет"; //разве «Привет» не находится в той же области памяти, что и «Привет»? с2 = источник2; } printf("c1 = %s\n", c1); // печатает Привет printf("c2 = %s\n", c2); // печатает мусор вернуть 0; } Почему source1 и source2 ведут себя по-разному?(скомпилировано с помощью gcc -std=c11 -W -O3)
Насколько я знаю, это строковый литерал типа «Hello»
считается char* в C и const char* в C++, и для обоих языков строковые литералы хранятся в только для чтения память.(поправьте меня, если я ошибаюсь)
#include int main (недействительный) { константный символ* c1; константный символ* c2; { const char* source1 = "Привет"; с1 = источник1; const char source2[] = "Привет"; //разве «Привет» не находится в той же области памяти, что и «Привет»? с2 = источник2; } printf("c1 = %s\n", c1); // печатает Привет printf("c2 = %s\n", c2); // печатает мусор вернуть 0; } Почему source1 и source2 ведут себя по-разному?(скомпилировано с помощью gcc -std=c11 -W -O3)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение