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

[C/C++]Компилятор g++.Странности с true и false.Кто нибудь может прокомментировать/повторить это у себя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ стек со структурой http://www.cyberforum.ru/cpp-beginners/thread55836.html
Не могу найти ошибку. Что-то с добавлением элементов. При выводе выводится только последний(столько же раз сколько всего элементов) #include <iostream> #include <conio.h> using namespace std; struct stack { int *dat; stack *prev;
C++ Табулирование кусочно непрерывной функции. Помогите пожалуйста с решением задачи. Выводить по диагонали снизу вверх слева направо в формате f(x)=y через паузы по 5 секунд порциями по N значений (N задает пользователь).Найти и вывести количество пробных точек, которым соответствовало значение функции ниже среднего на исследуемом отрезке.Примечание: вычисление y(x) оформить в виде функции с одним аргументом. Вот функция... http://www.cyberforum.ru/cpp-beginners/thread55829.html
Задания с операторами выбора C++
Задали две программы а материал не обьяснили сам пробывал но запутался с оператарами Задача 1 даны три различных числа,увеличить меньшее из них на 20,из большего вычесть среднее,среднее удвоить. Задача 2 если сумма трех попарно различных чисел х,у,z меньше единицы, то меньшее из х,у заменить полусуммой y и z, иначе большее из х и zзаменить на у(в четвертой степени) Буду благодарен любой...
Сортировка двухмерного масива C++
нужно написать в среде Borland C++ програму сортировки двухмерного масива методом пузырька следуя даной блок-схеме. Заранее благодарна.
C++ Построение списка http://www.cyberforum.ru/cpp-beginners/thread55813.html
В интернете очень много инфы по поводу построения списка через класс "List" или подобных. Но как построить список не прибегая к классам?
C++ Cоздать и вычислить матрицу. помогите программный код написать плиззз задание: дана матрица S вычислить сумму главной диагонали матрицу вводить с клавиатуры плизз очень нужна подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17299 / 5547 / 347
Регистрация: 30.03.2009
Сообщений: 15,101
Записей в блоге: 26
11.12.2009, 11:42     [C/C++]Компилятор g++.Странности с true и false.Кто нибудь может прокомментировать/повторить это у себя?
Цитата Сообщение от Sich_Taras Посмотреть сообщение
Если ты указателю присваиваешь значение 0 (a это и есть false), то это означает, что он не указывает ни на какую область памяти и это нормально. Но если ты хочешь присвоить указателю значение 1 (true), тоесть ты хочешь, чтобы он указывал на область памяти которая начинается с ячейки №1, то ты должен написать так:
Немного не так. По стандарту Си должно быть некоторое специальное значение указателя и чтобы ни один объект не мог иметь такой адрес. В заголовочных файлах такое значение должно быть описано как NULL. Если p - это некий указатель, то "if (p)" должно трактоваться как "if (p != NULL)". При этом стандарт не говорит, чему должен быть равен NULL. Для большинства "нормальных" систем NULL равен нулю. Но для некоторых процессоров это может быть не так. На сигнальных процессорах зачастую 0 является валидным адресом. Поэтому в качестве NULL может быть взято значение -1. У сигнальных процессоров мало памяти, а потому адрес 0xffff... как правило находится за рамками физической памяти процессора и поэтому удовлетворяет стандарту (т.е. не существует переменной или функции, адрес которой равен -1)

Когда-то #pragma искал примеры непереносимых кодов. Можно привести ещё пример. Предполагаем, что во всех трёх случаях делается сравнение с NULL

C
1
2
3
4
int *p;
if (p) ....         /* переносимый */
if (p!=NULL) ....   /* переносимый */
if (p!=0) ....      /* НЕ переносимый */
Ну и, соответственно, целочисленное значение, соответствующее NULL, можно присваивать в указатель любого типа без явного преобразования. В нашем случае NULL соотвествует нулю, а потому присваивание false отработало корректно. На вышеупомянутом сигнальном процессоре здесь так же произошла бы ошибка
 
Текущее время: 02:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru