Другие языки программирования и технологии

Как работают указатели в c++

Кто-то может объяснить как работает char *url= "текст"; и почему не работает char *url= link, если link- переменная string? Как вообще в char можно что-то записать? Мозг уже кипит, вообще не понятно.
IB
Ilya Bukatov
714
Ну потому, что C++ строка string и С строка из char всё-таки разные вещи.
Н-р если нужно получить указатель char* из string используется c_str
http://www.cplusplus.com/reference/string/string/c_str/

К слову - объявление char *s = "Hello"; со стандарта C++ 11 компилятор может выдавать предупреждение, т. к. не рекомендованы такие объявления.

Записать в char или массив char? или в C строку?
char c = 'H';
char s[] = "Hello"; strcpy(s,"Hell"); //char s[] = "Hell"; ахтунг - копируемая строка <= размеру исх.
char s[] = "Hello"; s[0] = 'Y'; //char s[] = "Yello";
char s[] = "***** world!"; memcpy(s, "Hello?", 5); //char s[] = "Hello world!";

P.S: Если планируете разбираться с C строками - смотрите функции cstring / string.h
_http://cppstudio.com/cat/309/325/

Если планируете работать с С++ строками соотв. смотрите string.
_http://cppstudio.com/post/6110/
Петр Севрюков
Петр Севрюков
84 764
Лучший ответ
Рома Нестеренко > объявление char *s = "Hello"; со стандарта C++ 11 компилятор может выдавать предупреждение

Строку в стандарте, где об этом сказано.
Этот просветлённый украл у меня идею
Ну потому, что C++ строка string и С строка из char всё-таки разные вещи.
Н-р если нужно получить указатель char* из string используется c_str
http://www.cplusplus.com/reference/string/string/c_str/

К слову - объявление char *s = "Hello"; со стандарта C++ 11 компилятор может выдавать предупреждение, т. к. не рекомендованы такие объявления.

Записать в char или массив char? или в C строку?
char c = 'H';
char s[] = "Hello"; strcpy(s,"Hell"); //char s[] = "Hell"; ахтунг - копируемая строка <= размеру исх.
char s[] = "Hello"; s[0] = 'Y'; //char s[] = "Yello";
char s[] = "***** world!"; memcpy(s, "Hello?", 5); //char s[] = "Hello world!";

P.S: Если планируете разбираться с C строками - смотрите функции cstring / string.h
_http://cppstudio.com/cat/309/325/

Если планируете работать с С++ строками соотв. смотрите string.
_http://cppstudio.com/post/6110/
Диман //12// Однако ты у него украл всё объяснение.