Вопрос-Ответ (C++)
| |
Kornival | Дата: Воскресенье, 04 Сентября 2011, 19:10 | Сообщение # 1 |
The Witcher
Сейчас нет на сайте
| Чтобы не создавать отдельную тему на каждый глупый вопрос, предлагаю задавать их здесь.
Saitei: все вопросы по С задаём в теме Вопрос-Ответ (С). Благодарю за внимание!
|
|
| |
kSky7000 | Дата: Вторник, 18 Июня 2013, 07:51 | Сообщение # 941 |
частый гость
Сейчас нет на сайте
| mega-ice-boy, Вопрос: а в гугле спросить не судьба было? 1: да 2: да 3: short занимает меньше памяти чем int, соответственно хранить большие числа там не выйдет 4: long наоборот же занимает памяти больше чем int, еще есть long long который еще больше
|
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 08:37 | Сообщение # 942 |
Rammstein forever
Сейчас нет на сайте
| mega-ice-boy, http://ru.wikipedia.org/wiki/Limits.h
|
|
| |
OpenGOO | Дата: Вторник, 18 Июня 2013, 10:41 | Сообщение # 943 |
почти ветеран
Сейчас нет на сайте
| mega-ice-boy, Если хочешь стать профессиональным программистом, для начала прочитай хотя бы одну книгу по с++, а то так и будешь задавать элементарные вопросы.
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
Сообщение отредактировал OpenGOO - Вторник, 18 Июня 2013, 12:08 |
|
| |
mega-ice-boy | Дата: Вторник, 18 Июня 2013, 13:08 | Сообщение # 944 |
частый гость
Сейчас нет на сайте
| От души Спасибо, братья, за ответы появилось еще вопросы, вопрос.1. Почему в конце строка применяются оператор Endl; ? Что будет если его не пишем? (например: cout<<"hello world"<<endl; ) вопрос2. For (int i=5;i<7;i++) cout<<"i";
здесь сначала на экран выйдет начальное значение переменного i , потом увеличенное?(то есть сначала 5, потом 6...) или сразу выйдет на экран увеличенное? То есть значение 6
Сообщение отредактировал mega-ice-boy - Вторник, 18 Июня 2013, 13:15 |
|
| |
SkyScraper | Дата: Вторник, 18 Июня 2013, 13:12 | Сообщение # 945 |
почетный гость
Сейчас нет на сайте
| Цитата (mega-ice-boy) 1. Почему в конце строка применяются оператор Endl; ? чтоб все слитно не писать, а новую строчку создать.
Меня оскорбляет GC-Vic. См. историю репутации
|
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 14:10 | Сообщение # 946 |
Rammstein forever
Сейчас нет на сайте
| Цитата (mega-ice-boy) вопрос2. For (int i=5;i<7;i++) cout<<"i"; здесь сначала на экран выйдет начальное значение переменного i , потом увеличенное?(то есть сначала 5, потом 6...) или сразу выйдет на экран увеличенное? То есть значение 6 Нет. For (int i=5;i<7;i++) cout<<"i"; дважды выводит символ "i", так как ты выводишь не переменную i, а строку "i" For (int i=5;i<7;i++) cout<< i; выводит именно число i, а не строку "i". Сначала выведет 5, так как i=5, потом i увеличивается на 1, и соответственно, выводит 6.
Добавлено (18.06.2013, 14:10) --------------------------------------------- И не For, а for
Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 14:11 |
|
| |
pelmenka | Дата: Вторник, 18 Июня 2013, 14:26 | Сообщение # 947 |
Драгоценный Тунеядец
Сейчас нет на сайте
| mega-ice-boy, собственно short int занимает 2 байта, а long int 4 байта. Это было придумано из-за того, что в 16-битных системах int занимал 2 байта, а в 32-битных системах 4, из-за чего програма могла работать по другому.
Сталина в каждый дом!
|
|
| |
mega-ice-boy | Дата: Вторник, 18 Июня 2013, 17:34 | Сообщение # 948 |
частый гость
Сейчас нет на сайте
| А что будет если использовать оператор \n вместо еndl ? Это был вопрос 1. Теперь вопрос 2. Про Обычные и многомерные массивы. Допустим я создал такой массив:
int massiv[5]; // это значить что я создал 5 переменных с типом int? Вопрос 3. Допустим я создал такой массив:
int massiv[5][5]; // это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так?
Хочу стать профессиональным программистом! У меня есть терпение, ум.
|
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 17:48 | Сообщение # 949 |
Rammstein forever
Сейчас нет на сайте
| Цитата (mega-ice-boy) int massiv[5][5]; // это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так? Я посмотрел в окно и увидел, что небо голубое. Это значит, что небо голубое? Если это не так, то почему, не только на этом сайте, не только в форуме, не только в этом разделе, не только в теме с основами, написано, что небо голубое?
Добавлено (18.06.2013, 17:48) ---------------------------------------------
Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 17:48 |
|
| |
Tikara | Дата: Вторник, 18 Июня 2013, 17:54 | Сообщение # 950 |
частый гость
Сейчас нет на сайте
| Цитата (mega-ice-boy) А что будет если использовать оператор \n вместо еndl ? endl добавляет в буфер символ конца строки ( привет '\n' ) и вызывает метод flush для "сброса" буфера.
Цитата (Izaron) На самом деле массивы в С++ - это указатели int mas[3];
mas[2] - указатель? куда я указываю? Может поговорим об этом? ^^
Сообщение отредактировал Tikara - Вторник, 18 Июня 2013, 18:01 |
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 18:06 | Сообщение # 951 |
Rammstein forever
Сейчас нет на сайте
| Tikara, не имею желания говорить об том, что давно для меня доказано.
Вот скажи, как ты создаешь динамичный массив в этом случае размерностью n? Желаю удачи)Добавлено (18.06.2013, 18:06) --------------------------------------------- Именно массив, а не вектор или что-то еще.
|
|
| |
Tikara | Дата: Вторник, 18 Июня 2013, 18:15 | Сообщение # 952 |
частый гость
Сейчас нет на сайте
| Izaron, так и думал, что ты это напишешь). Мы говорим о массивах в c++ в общем, а не об указателях на массив.
Тогда рассуждаем так, если
- это не есть указатель, тогда утверждение "На самом деле массивы в С++ - это указатели" не верно.
Я же на c++ это написал - верно? Это массив, так?
Сообщение отредактировал Tikara - Вторник, 18 Июня 2013, 18:15 |
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 18:24 | Сообщение # 953 |
Rammstein forever
Сейчас нет на сайте
| Tikara, а с каких пор int *mas и int mas[] не эквивалентны?) Думаю, нам не удастся переубедить друг друга, так что не желаю скатываться в унылую демагогию и доказывать уже доказанные вещи
|
|
| |
Tikara | Дата: Вторник, 18 Июня 2013, 18:30 | Сообщение # 954 |
частый гость
Сейчас нет на сайте
| Цитата (Izaron) а с каких пор int *mas и int mas[] не эквивалентны?) С тех пор как int *mas - это указатель, а int mas[] - это последовательность 4ёх байтовых чисел.
Код int *mas = new int[3];
Мы выделили в памяти 4 байта под указатель и 12 байт под массив и того 16 байт.
Выделено ровно 12 байт.
PS Раз начали, тогда доводим до конца) Вы должны знать правду)
|
|
| |
l1fe | Дата: Вторник, 18 Июня 2013, 18:30 | Сообщение # 955 |
был не раз
Сейчас нет на сайте
| Izaron, Ничего подобного. Объявление массива "int arr[];" требует определенного места для данных, которое будет известно под именем "arr". То есть, существует место под именем "arr", в которое могут быть помещены данные. С другой стороны, объявление указателя "int *mas;" требует места только для самого указателя. Указатель будет известен под именем "mas" и может указывать на любой участок данных (или непрерывный массив данных).
Сообщение отредактировал l1fe - Вторник, 18 Июня 2013, 18:31 |
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 18:31 | Сообщение # 956 |
Rammstein forever
Сейчас нет на сайте
| Цитата (l1fe) PS Раз начали, тогда доводим до конца) Вы должны знать правду) Ну спасибо, теперь моя жизнь никогда не станет прежней:D
|
|
| |
mega-ice-boy | Дата: Вторник, 18 Июня 2013, 22:36 | Сообщение # 957 |
частый гость
Сейчас нет на сайте
| TIKARA, ответь на мою 3 вопрос подробно, пожалуйстаДобавлено (18.06.2013, 22:36) --------------------------------------------- Даже не знаю кому доверять
Хочу стать профессиональным программистом! У меня есть терпение, ум.
|
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 22:38 | Сообщение # 958 |
Rammstein forever
Сейчас нет на сайте
| Цитата (mega-ice-boy) TIKARA, ответь на мою 3 вопрос подробно, пожалуйста Как можно ответить на вопрос, в котором уже есть ответ?
Цитата (mega-ice-boy) это значить я создал 25 переменных с типом int? Если это не так то почему в этом сайте, в форуме, в этом разделе, в теме "основы С для начинающих " написано что это так? Прочитай еще раз это вдумчиво.
Те, кто писал ту тему с основами, как я понимаю, знают С/C++ лучше тебя.Добавлено (18.06.2013, 22:38) ---------------------------------------------
Цитата (mega-ice-boy) Даже не знаю кому доверять Верь в себя.
|
|
| |
mega-ice-boy | Дата: Вторник, 18 Июня 2013, 22:46 | Сообщение # 959 |
частый гость
Сейчас нет на сайте
| Int igrok=100, int p=0, int s;
while (true) { int max=30; int min=70; s=min+(rand()%(min-max)); //генератор случайных чисел. igrok-=s; if (igrok==0) break; } здесь я правильно вычислил диапазон для переменного s ? Или есть ошибки? Если есть ошибки то скажите как его исправить?
Хочу стать профессиональным программистом! У меня есть терпение, ум.
Сообщение отредактировал mega-ice-boy - Вторник, 18 Июня 2013, 22:52 |
|
| |
Izaron | Дата: Вторник, 18 Июня 2013, 22:56 | Сообщение # 960 |
Rammstein forever
Сейчас нет на сайте
| Цитата (mega-ice-boy) int igrok=100; int p=0; int s;
Добавлено (18.06.2013, 22:54) --------------------------------------------- Цитата int max = 30, min = 70; while (true) { s=min+(rand()%(min-max)); //генератор случайных чисел. igrok-=s; if (igrok<=0) break; } Добавлено (18.06.2013, 22:56) --------------------------------------------- 1. Орфография кода хромает. 2. Не объявлять переменные каждый раз в цикле, если они не изменяются 3. igrok не обязательно будет равен 0
Сообщение отредактировал Izaron - Вторник, 18 Июня 2013, 22:54 |
|
| |
|