C/C++

Чему равно значение переменной, если ей присвоено значение, возвращенное функцией, которая ничего не возвращает? (+)

Другими словами, откуда берутся эти цифры?
Kostikkogay2014
Kostikkogay2014
4 548
Когда ты создаешь переменную, ей выделяется место в оперативной памяти, в зависимости от типа переменной, данные которые остались от прошлого "владельца" того участка бит в оперативной, которым сейчас владеет твоя переменная, будут интерпритированны в соответствующие число/символ/булево значение и тп. Когда ты возвращаешь "ничего" в свою переменную, ты ее никак не меняешь, это равносиль тому что ты просто создашь переменную, и выведешь ее значение.

Ради интереса создай и выведи интовую переменную не присваивая ей никакого значения. НО поставь деление с остатком на 20 к примеру на выводе, чтобы мусор который ты выведешь был в диапазоне [0;20], а потом выведи ту же переменную, но явко укажи тип ри выводе (char)'имя переменной'

По логике у тебя выведется остаток от деления на 20 мусора который был в памяти
и следом символ, который (давно не писал на ++,вроде так оно там работает) в таблице аски (хаски/хуяски) расположен под тем же номером, что и выведенное число)))

Уачи)
Алибек Даулетов
Алибек Даулетов
425
Лучший ответ
Функция вернёт непонятно что. Случайный мусор, который зависит от разных факторов: используемый компилятор, какие действия выполняла функция и с какими данными, и т. п.
Компилятор должен выдавать предупреждение, когда в такой функции нет "return значение".
В более строгих языках (например, в C#) была бы ошибка компиляции, а в C++ только предупреждение. Возможно, некоторые компиляторы C++ тоже будут выдавать ошибку компиляции.
Aidarbek Turgunbai Uulu
Aidarbek Turgunbai Uulu
58 065
Игорь Бондаренко Тебе не найти работу,
ты нигде не нужен
только тут для д
си или c++?
а. вижу. main в c++ должна что-то возращать
Роман Семенов
Роман Семенов
25 445
Скачай Бьер стауструп- Язык С++ и assembler Зубков. Начни с ассемблера.
Я в свое время покупал и весьма недешево для студента
Kostikkogay2014 Я вот как раз Страуструпа читаю, приходится постоянно в интернет за разъяснениями идти. Когда читал про то, что знаю, было нормально, но потом мало что понятно.
https://en.cppreference.com/w/cpp/language/return
Flowing off the end of a value-returning function (except main) without a return statement is undefined behavior.

Т. е., как уже сказали, случайный мусор.

А вот VC++ выдаст ошибку компиляции.
ЛБ
Ли Борис
2 751
хер вернет.
Kostikkogay2014 Как раз возвращает.
0,или ошибка
Kostikkogay2014 Нет, посмотри на скриншот, там длинные числа.
Нормальный компилятор показал бы ошибку на отсутствие return в функции. А данные мусор из памяти.
Kostikkogay2014 То есть GCC - плохой компилятор?
Сергей Сидоренко Это зависит от коммуникации между IDE и компилятором. У меня например в Code::Blocks показывается что функция без return возвращает тип void, а в VS19 указывается на отсутствие return.

Похожие вопросы