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

Глупый вопрос по указателям? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод чисел из арабских в римские. Пределы int http://www.cyberforum.ru/cpp-beginners/thread241119.html
Есть программа: #include <stdio.h>; #include <conio.h>; int roman(int,int,char); main() { int a,z; clrscr(); while (z!=1){ printf("Введите число (1-32767): \nАрабское число: ");
C++ Переместить нулевые элементы в конец массива Добрый день! Я уже к вам за помощью обращалась и вот пишу в очередной раз. Пишу код программы, но программма отказывается его выполнять так как имеются ошибки в коде. Задача состоит в следующем: имеется одномерный массив. Все элементы, равные нулю, нужно переместить в конец массива. У меня получается вот такая программа, но она не работает: #include<stdio.h> #include<stdlib.h>... http://www.cyberforum.ru/cpp-beginners/thread241081.html
число в степени C++
Выведите число 2 в степени N. Нужно решить циклом for. Знаю, это лёгкая задача, но я совсем забыла цикл for.
из заданного интервала натуральных чисел определить все простые числа C++
из заданного интервала натуральных чисел определить все простые числа
C++ Как правильно оформлять модули? http://www.cyberforum.ru/cpp-beginners/thread241016.html
как правильно нужно оформлять модули? допустим самый простейший.сохранил как modul.h #include <iostream> extern void write(); void write() { cout<<"Hello world!"<<endl;
C++ sort_array Всем форумчанам доброго времени суток!!Есть такая задача:реализовать меню,дающее пользователю выбрать сортировку массива по желанию(выбор,вставка или обмен) и направление(возрастание или убывание).,т.е.в программе нужно отобразить все три сортировки.Как это лучше сделать,через оператор switch?Зараннее благодарен за помощь. подробнее

Показать сообщение отдельно
Лаподь
Заблокирован
14.02.2011, 00:36     Глупый вопрос по указателям?
Цитата Сообщение от Alex1234 Посмотреть сообщение
C++
1
2
  char* str = "Hello world"; //т.е. const char* str; 
                             //но много где видел и такое.
С чего это ты взял? То, что указатель инициализируется указателем на константу вовсе не означает, что он сам становится указателем на константу.

Цитата Сообщение от Alex1234 Посмотреть сообщение
C++
1
2
  str[0] = 'M'; //Компилятор без разговоров проглатывает, 
  *(str+2) = 'r'; //но ничего не пишет в строку.
Что-то не так с настройкой исполняющей системы - должно порождаться исключение, т.к. константы должны лежать в защищенной для записи области памяти.

Компилятор проглатывает потому, что str у тебя не является указателем на константу и ничего незаконного на этапе компиляции тут не происходит.

Добавлено через 10 минут
Цитата Сообщение от silent_1991 Посмотреть сообщение
тут по-моему идут непоянтки... ТС на самом деле имел ввиду, что память, на которую устанавливается указатель, выделяется в куче. Понятно, что сама переменная-указатель выделяется в стеке, но часто на подсознательном уровне программисты связывают переменную-указатель с памятью, на которую он указывает, хотя на самом деле это разные области памяти,
Что ж, возможно так оно и есть - ТС имел в виду. Но я высказался абсолютно точно и грамотно, пусть читает до полного прояснения и учится стоить правильные ассоциации на "подсознательном уровне" - в программировании даже один символ может иметь драматическое значение, надо привыкать к строгости.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru