Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 5

Почему у функции main() тип int? Почему не может быть какой-то другой, например, char?

27.10.2019, 01:34. Показов 7332. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Схема, касательно возвращаемого значения понятна. Не понятно почему именно целочисленное. Хелп)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2019, 01:34
Ответы с готовыми решениями:

Почему у функции main() тип возвращаемого значения - int?
Здравствуйте! В языке C# main "свободный": void main (). Логично, поскольку программа - это набор операторов, которые в общем смысле ничего...

Тип может быть равен числу, например char= 1?
Тип может быть равен числу, например char= 1? заранее спасибо.

Почему у массивов типа char может быть утечка памяти, а у указателей char с выделенной памятью - нет?
Тут будет утечка памяти: #include<iostream> using namespace std; int main() { char name; cin >> name; cout <<...

6
 Аватар для vlisp
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,360
27.10.2019, 01:37
потому что она возвращает код ошибки операционной системе, если грубо
1
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
27.10.2019, 03:22
Аннэт18, потому что это закреплено в Стандарте С++.
2
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
27.10.2019, 10:35
Лучший ответ Сообщение было отмечено Аннэт18 как решение

Решение

Цитата Сообщение от Аннэт18 Посмотреть сообщение
Почему у функции main() тип int? Почему не может быть какой-то другой, например, char?
Ну, char и int в данном случае это одно и то же - можешь спокойно делать там return 'A';
А почему целочисленное - потому что это единственное, что можно получить от завершённого процесса (Ну, при минимальных расходах).
Строку или указатель на структуру там ты вернуть не сможешь, потому что для них надо выделять память в адресном пространстве процесса, который уже завершён.
Числа с плавающей точкой, в те времена, когда была придумана функция main, ещё не были стандартизованы. А в последствии возвращать double из процесса оказалось нахрен никому не нужным.
В общем - нафига тебе там понадобилось возвращать что-то другое?
1
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
27.10.2019, 11:16
Лучший ответ Сообщение было отмечено Аннэт18 как решение

Решение

Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Ну, char и int в данном случае это одно и то же - можешь спокойно делать там return 'A';
Тип символьного литерала - это, как раз таки, int.

Дополню ответ @L0M.

Согласно стандарту языка C++, у функции main может быть всего два возможных вида1:

C++
1
int main() { }
и

C++
1
int main(int argc, char *argv[]) { }
Все остальные возможные виды функции main определяются конкретной реализацией (часто реализация предоставляет функцию main с тремя параметрами, последний из которых указывает на массив указателей на переменные среды исполнения).

Вообще говоря, функции main может вообще не быть в программе, если она компилируется как freestanding (грубо говоря, без поддержки какой-либо ОС. Это такие программы, как загрузчики или ядра операционной системы, например). Тогда точка входа полностью определяется реализацией. Т. е. вы сами решаете, с какой функции начнется выполнение программы.

1 Допускаются также эквивалентные формы (например, int main(int a, char **b)). В языке C функция main без аргументов имеет вид
C
1
int main(void) { }
1
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
27.10.2019, 14:25
Цитата Сообщение от Eanmos Посмотреть сообщение
Тип символьного литерала - это, как раз таки, int
Это в С так. В С++ у него тип char.
Цитата Сообщение от http://eel.is/c++draft/lex.literal#lex.ccon-2
A character literal that does not begin with u8, u, U, or L is an ordinary character literal.
An ordinary character literal that contains a single c-char representable in the execution character set has type char, with value equal to the numerical value of the encoding of the c-char in the execution character set.
1
0 / 0 / 0
Регистрация: 04.10.2019
Сообщений: 5
28.10.2019, 00:59  [ТС]
Всем спасибо, разобралась))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2019, 00:59
Помогаю со студенческими работами здесь

Почему тип char не может делать вот так +=
Я хочу из входного текста получить другой текст. Например: ТЕКСТ, а я хочу получить ТСКЕТ то есть предложение или слово только...

Почему в setnamedisc нужно использовать char * для установки значения, а при возвращении значения тип метода должен быть char* ?
Вопрос такой, почему в методе setnamedisc нужно использовать char *s для установки значения, а при возвращении значения в методе...

Почему ковариантный тип может быть только типом возвращаемого значения метода?
Почему ковариантный тип T может быть только типом возвращаемого значения метода? Вот мои мысли: 1) T не может быть типом параметра так...

Почему не может быть такой функции?
ofstream input_file(str1) ; такой строкой кода я открываю файл. ofstream - тип обекта input_file - обект типа ofstream а тепрь...

Почему System.Char не может быть неявно преобразован к System.Int16?
Почему System.Char не может быть неявно преобразован к System.Int16? Почему только в его беззнаковый вариант?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru