Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не умею написать "Составное" имя файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Hello world и компиляторы http://www.cyberforum.ru/cpp-beginners/thread100445.html
начал самостоятельно изучать С++ (раньше к программированию отношения никакого не имел, и в принципе разве, что являюсь продвинутым юзером). Пишем хелло ворлд... Пробывал в различных компиляторах -...
C++ нужно как то отсортировать буквы Дана последовательность строчных (маленьких) латинских букв. ЗАДАНИЕ: Упорядочить буквы слова в алфавитном порядке. http://www.cyberforum.ru/cpp-beginners/thread100424.html
C++ абстрактный базовый класс
Создать абстрактный базовый класс с виртуальной функцией – объем. Создать производные классы: параллелепипед, пирамида, шар со своими функциями объема. Для проверки определить массив ссылок на...
C++ Дерево операций
Пишу от безысходности!!! Нужно решить задание, а меня нет идей вообще. Задание следующее: "Записать программу которая реализует деревья операций, выводит символьное выражение что отвечает этому...
C++ Нахождение последнего отрицательного элемента массива http://www.cyberforum.ru/cpp-beginners/thread100384.html
Программа ищет последний отрицательного элемент массива. Не могу понять ошибки программы: 3 from F:\...\2_17.C In file included from C:/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include...
C++ как ортировать массив чтобы выдавало только елементы стоящие на нечетных позициях ? как ортировать массив чтобы выдавало только елементы стоящие на нечетных позициях ? подробнее

Показать сообщение отдельно
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.03.2010, 01:57
Цитата Сообщение от StrDmVal
Почему в условии написано, что расширение строк const char *
потому что строки подаются только для чтения
когда sprintf юзаешь, там наоборот - строка подается как для чтения, так и для записи, поэтому нету const, а вот форматная строка подаётся только для чтения, поэтому там есть

Цитата Сообщение от StrDmVal
Прочёл потом, что при объявлении указателя на строку, она сама где-то там в недрах компилятора создаётся
C
1
char *p = "abcd";
строка "abcd" создаётся
но указатель p никакого отношения к ней не имеет
это просто указатель, в него сразу помещается адрес памяти, где начинается строка "abcd"

поэтом можно сделать и так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    char *p = "abcd";
    char n[10];
 
    p = &n[0];
 
    sprintf(p, "copy to n[]");
 
    /* а строка "abcd" потеряна,
       указатель с неё переставили на массив n,
       а адрес строки "abcd" не стали сохранять,
       теперь он неизвестен  */
 
    /* p установлен на массив n */
 
    p = NULL;
 
    /* в p поместили нулевой адрес */
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru