Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для javay
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 105

Чем отличаются указатель на строку и константный указатель на строку?

07.01.2018, 19:19. Показов 2758. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Просто обьясните, как такое возможно?
C++
1
char *a="fff";
В чем отличие от этого? :
C++
1
const char *a="fff";
Ведь так и так строку нельзя изменить.
Вообще как так, обычно указатель содержит ссылку на обьект, а тут он на строку ссылается,у нее же нет адресса, что за?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2018, 19:19
Ответы с готовыми решениями:

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать?
Подскажите, что значит константный указатель на объект, указатель на константный объект, и как это можно использовать??

Указатель на константную строку и имя массива как указатель
Изучаю C. У меня есть указатель на константную строку, и я хочу его изменить путем передачи в функцию. Это работает без проблем: ...

Как записать константный указатель на указатель
Добрый вечер. Вот данная запись говорит. Указатель на константный указатель типа Int. int * const * a; как записать? ...

2
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
07.01.2018, 21:39
Цитата Сообщение от javay Посмотреть сообщение
Просто обьясните, как такое возможно?
древнее наследние раздолбайного языка си.

Цитата Сообщение от javay Посмотреть сообщение
В чем отличие от этого? :
const char *a="fff";
первый вариант запрещен:
C++
1
2
source_file.cpp:7:15: warning: ISO C++ forbids converting a string constant to ‘char*[-Wwrite-strings]
     char *a = "fff";
но оставлен для говнокодеров обратной совместимости с сишным кодом.


Цитата Сообщение от javay Посмотреть сообщение
Вообще как так, обычно указатель содержит ссылку на обьект, а тут он на строку ссылается,у нее же нет адресса, что за?
строка - вполне себе полноценный объект.
у неё есть вполне себе валидный адрес.
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
07.01.2018, 21:49
javay,
Цитата Сообщение от javay Посмотреть сообщение
обычно указатель содержит ссылку на обьект, а тут он на строку ссылается,у нее же нет адресса, что за?
Указатель хранит адрес. Вот ваше a хранит некий адрес, где хранится строка "fff".

Цитата Сообщение от javay Посмотреть сообщение
В чем отличие от этого? :
Объясняю. Дело в том, что в языке C/C++ все строковые литералы имеют тип const char [N], где N - количество символов в строке + завершающий нуль. Так вот, такой код:
char *a="fff";
с этой строкой нельзя работать, если она не будет постоянной. Так как все указатель на char* - это по сути указатель на первый элемент массива, а строка "fff" имеет тип const char [4], тоесть получается несоответствие типов! Это неверно для C/C++. Все строки нужно объявлять как const char*
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.01.2018, 21:49
Помогаю со студенческими работами здесь

Константный указатель или указатель на константу?
Привет всем.Уважаемые программисты пожалуйста скажите чем отличать когда написано например int const* a='3' -то const касается на указатель...

Строковый литерал и указатель на строку. В чем разница?
Добрый день. Начал только изучать С++, не могу понять в чем разница между указателем на литерал и указателем на строку??? Заранее...

Чем отличаются указатель в теле функции и в аргументе
Здравствуйте. Не могу разобраться чем, в данном случае: bool LexAnalysis(const char* text) { const char *str = text; const char...

Ссылка и указатель: чем отличаются заданные фрагменты кода?
1 int *p; int *q; p = new int; q = new int; *p = 1; *q = 2; p = q; *q = 3;

Указатель на строку: как выводить не всю строку целиком, а конкретную букву
Есть программка: #include<iostream> using namespace std; void fn_str1(int i,string str1,char *p) { p=&str1; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru