while (1) в Си

moga80

как понимать такую запись:
while(1)
{
.......
}
?

Dasar

бесконечный цикл.

kruzer25

Мне тут недавно обхяснили, что численное значение TRUE - единица. Остальное можешь додумать сама.

moga80

понятно, то есть если у меня вот такая запись
while(1)
{
...
if (p=NULL)break;
}
то процедура крутится, пока p не равно NULL?
а функция exit(1 что тогда означает?

shlyumper

функция exit(1) говорит о том, что нужно выйти из форума с кодом 1 и наконец почитать хотя бы одну книжку из серии "Язык программирования C для начинающих за 37 минут!"

Dasar

> то процедура крутится, пока p не равно NULL?
там точно только один знак '='?
если все-таки два знака равенства, то да - цикл крутится пока p не равно NULL.
если один, то это ошибка, p - будет в первой же итерации приравен нулю, и цикл будет крутиться вечно.
> функция exit(1
выход из программы с кодом возврата 1.

kruzer25

а функция exit(1 что тогда означает?
Она означает, что тебе надо запустить man 1 exit
А если серъёзно - думаю, что завершение программы с кодом 1

alexkravchuk

while(1)
{
...
if (p=NULL)break;
}
то процедура крутится, пока p не равно NULL?
а функция exit(1 что тогда означает?
Да, верно, хотя здесь красивее было бы написать
do{
....
}
while(p!=NULL);
exit(1) - прервать работу программы с кодом ошибки =1 (0 - без ошибки). Правда обычно на код ошибки никто не смотрит, поэтому можно считать, что просто прервать работу программы.

FRider

exit(1)
означает завершение процесса с кодом выхода 1.
ЗЫ Вообщето надо читать документацию, тогда подобныеотпадут.

kruzer25

Правда обычно на код ошибки никто не смотрит
Если это программа, которую надо сдать преподу по информатике и забыть - да.
А если это модуль крупного проекта - ты очень не прав.

moga80

всем спасибо
действительно, там 2 знака равенства (p==NULL)
и действ-но, это прогр-ма, кот нужно сдать преп-лю и забыть

FRider

тем не менее, читать документацию стоит.

moga80

да я итак читаю

FRider

а можно узнать, что конкретно ты читаешь?

moga80

первое, что под рукку попало- Подбельский и Фомин "прогр-е на яз Си"

FRider

а под какой поерационной системой пишешь?

laki

исходник программы одногруппника

moga80

windows?

FRider

странно, что там не описана семантика цикла while и вычисление логических выражений в СИ.

kruzer25

Угу, нам тоже её рекоендовали - хреновая книжка.
Могу посоветовать очень хорошую книжку Страуструпа - продаётся за ~400 в аргументе, ~500 в букинисте - там, по сути, написано вообще всё о си++

FRider

это я вообще то спросил..

juliuzz

Оч. хорошая книжка для начинающих.

laki

Угу, нам тоже её рекоендовали - хреновая книжка.
нормальная книжка.
Могу посоветовать очень хорошую книжку Страуструпа...
чтобы написать программу в универе и забыть, не обязательно ее читать

kruzer25

Из этой книжки я, в частности, так и не смог понять - как именно перегружать операторы... там даже примеров нормальных нет... задавать пришлось смотреть рограмму знакомого... и в результате, я только совсем недавно нормально узнал хоть что-то об операторах...

shlyumper

чудесная книжка!
Четай, четай, меньше фтыкай ф форум и будет тебе счастье!
И не пишы сюда, некреативно.

FRider

чуве, речь идет о С, насколько я понял...

kruzer25

Да, протупил, сорри...
Но не думаю, что книжка подбельского/фомина по си написаноа сильно лучше, чем их же - по си++...
Кстати, это какой курс, что используется простой си? Первый, что ли

laki

вмк 2ой осенний семестр
UNIX и язык Си

ruler

Дорогой друг, не сбивайте девушку с Пути.
Общение с наставников - важная часть духовного роста. А здесь наставников даже несколько.

kruzer25

Странно... на ММ уже вовсю ООП идёт...

laki

вмк 2ой весенний ООП и Язык С++

juliuzz

забываете о химиках и физиках!

shlyumper

Чорт, точно!
, пожалуйста, пришли мне свою фотографию в приват, я помогу выбрать тебе духовного наставника.

FRider

фиговый из тебя наставник, если сразу недопер

bobby

Очевидно, что нужно читать Чернокнижку

FRider

Обязательно ночью и при полной луне.

yolki

Подбельского-Фомина нужно в чёрный список внести, слишком уж он запутывает студентов.

Olenenok

Очень полезная книжка - только в ней была описана процедура, выполняя которую ваша программа не вываливается, когда в качестве аргумента при вызове задаётся очченннььь длинная строка

ppplva

void f(const char* s) {}  

?

yolki

нет, тут речь идёт о другом.
В своё время, когда я преподавал у программирование, одно из требований, которым должна была удовлетоврять программа было такое: когда программа спрашивает имя файла для дальнейшей работы, malicious пользователь может ввести такое имя, что программа валится.
в П-Ф описан процесс, как обойти подобные ошибки (переполнение буфера ввода).

kruzer25

А разве, если известно, что такое переполнение буфера ввода, непонятно, как это можно обойти

yolki

не все студенты это понимают, а если программа списана - непонимают вдвойне.

Olenenok

Можно, там, насколько сейчас помню, не считанные символы из командной строки (или из буфера scanf) выгребались с помощью getchar:

while (getchar != '\n');

356ft85

зачем такие тонкости нужны?
разве в задании требуется какие-то заумные ошибки обходить?

kruzer25

Это не "заумные ошибки", а огромная дыра. Кстати, подавляющее большинство дыр в ПО как раз происходят из-за переполнения буфера.

356ft85

в ПО то бесспорно, но в проге для препа то пох

ruler

Да-да, причем проценты там какие-то дикие.

kruzer25

А практически всё оставшееся, думаю - разнообразные injections...
Хотя, если подумать - по идее, вообще любая ошибка связана с тем, что мы начинаем исполнять пользовательский ввод...

kokoc88

Сто пудофф, 99.9% программ страдают от переполнения буфера, а оставшиеся 0.1% от injections.

tokuchu

но в проге для препа то пох
Преподы разные бывают.

amkharchenko

Далеко не любая. Многочисленные race conditions тому примером.

ale

думаю это просто один цикл закончится когда будет 1, не путай с true

ysipy

Состав капель для капли фаер фит отзывы - [url=https://kapelki-firefit.ru/]kapelki-firefit.ru[/url] - похудения фаер фит. За счет натурального состава fire fit оказывает длительный воздействие, не провоцирует аллергию, скорее принесет больше толку, чем вреда. Знакомства. Форум. Капли для сброса веса файр фит являются идеальным средством для сброса веса на 15 процентов процентов процентов процентов процентов-20 кило, за 1 месяц. Кто жаждет достичь таких высот, надо приобрести fire fit немедленно. Из оформления, наша компания узнаем об очередном помощнике справиться с избыточным весом. Это капли для сброса массы fire fit. Рассмотрим комплексе суставитин с форумов и остальных источников, неплохо похожих на правду. Определим сегмент человека, что требуется купить капли фаер фит. Капли для худеющих fire fit. На сегодня они считаются наиболее популярными. И никогда не даром, так как их рекламу вы сможете посмотреть на всех порталах. На блогах можно получить объективные мнения покупателей и увы, дамочки не радуют. Капли для избавления от лишнего веса fire fit форум насикомых Fire fit капли для худения. Обратно в страницу. Обрисуйте свой отклик. Тогда я обратилась к всемирной паутине и нашла там ти капли. Телочки в переписке рассказали, что неплохо помогают, к тому же в минимальные сроки! Fire fit капли для избавления от лишнего веса. Обратно в категорию. Обрисуйте свое мнение. Тогда я обратилась к сети и нашла там ти капли. Киски в переписке рассказали, что превосходно помогают, одновременно в кратчайший срок!
Оставить комментарий
Имя или ник:
Комментарий: