Указатель char на строку. |
Здравствуйте, гость ( Вход | Регистрация )
Указатель char на строку. |
Гость_TheJax_* |
14.1.2016, 1:30
Сообщение
#1
|
Гости |
Добрый вечер уважаемые программисты. Очень хотелось бы разобраться с одним вопросом, а именно.
Вызывает ли компилятор неявно оператор new в данном случае:
И в этом случае:
Вот для символов Hello World! вызывается оператор new? Ведь указатель ptr указывает на какой-то адрес, как тогда этот адрес выделяется? И почему указатель ptr является константным ?? С указателем pp все ясно, там идет работа с копией строки "Hello World!", а вот с ptr не очень. Спасибо!!! |
|
|
lanz |
14.1.2016, 18:03
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
На практике разница такая:
http://rextester.com/OZME60022 Цитата строка же константная Нет, она же char* Процитирую первую ссылку: Цитата it turns into an unnamed, static array of characters, and this unnamed array may be stored in read-only memory, and which therefore cannot necessarily be modified. In an expression context, the array is converted at once to a pointer, as usual (see section 6), so the second declaration initializes p to point to the unnamed array's first element. Some compilers have a switch controlling whether string literals are writable or not (for compiling old code), and some may have options to cause string literals to be formally treated as arrays of const char (for better error catching). may, may, may т.е. это не обязательно. Сообщение отредактировал lanz - 14.1.2016, 18:04 |
|
|
Текстовая версия | Сейчас: 28.11.2024, 14:38 |