Реклама

Да се ​​научиш да програмираш е кумулативно преживяване. Наред с изучаването на синтаксиса на избрания от вас език, трябва да научите и общите принципи, които всички езици за програмиране използват.

Разбирането и изучаването на C програмиране може да бъде обезсърчително, но има няколко основни идеи, с които си струва да се запознаете, когато започвате. Един прост проект е чудесен начин да научите основите на C.

И така, откъде трябва да започнете? Като кажеш здравей!

1. Здравей свят!

Първата част от почти всеки курс по кодиране е Здравей свят програма. Разглеждането му в детайли подчертава някои от начините, по които C се различава от другите езици. За начало отворете a текстов редактор или IDE Текстови редактори vs. IDE: Кое е по-добро за програмистите?Изборът между усъвършенствана IDE и по-опростен текстов редактор може да бъде труден. Предлагаме ви информация, която да ви помогне да вземете това решение. Прочетете още по ваш избор и въведете този код:

#включи /* това е скрипт Hello World в C */ int main (недействителен) { printf("Здравей, свят! \н"); връщане на 0; }
instagram viewer

Този кратък код се отпечатва на конзолата, преди да приключи програмата. Запазете го някъде, лесно за запомняне като здравей.c. Сега трябва да компилирате и изградите своя файл.

Накарайте го да работи

Обикновено няма да е необходимо да инсталирате допълнителен софтуер на компютъра си, за да изпълнявате C скриптове. Отворете терминален прозорец (или командния ред, ако използвате Windows) и отидете до директорията, в която сте запазили скрипта си.

Начинът, по който компилирате и стартирате вашия файл, варира от система до система:

  • Потребители на Windows: Направете файла си изпълним, като напишете cl здравей.в и натискане на enter. Това ще създаде hello.exe в същата папка, която можете да стартирате, като напишете Здравейте.
  • Потребители на Linux и macOS: Тип gcc -o здравейте hello.c и натиснете enter, за да го направите изпълним, и го стартирайте, като напишете ./Здравейте.

Който и метод да използвате, изпълнението на вашия скрипт трябва да ви покаже това:

Изход, показващ резултатите от Hello World! скица в C

Ако не работи в Windows, уверете се, че сте стартирали команден ред в режим на администратор. За macOS може да се наложи да инсталирате Xcode от App Store и следвайте тези стъпки от StackOverflow.

Сега нека разгледаме програмата ред по ред, за да видим как работи и да я подобрим!

Под капака: Разбиране на езика C

Предварителни процесори

Скриптът, който току-що създадохте, започва с включването на библиотека.

#включи 

Първият ред в скрипта се нарича a препроцесор. Това се извършва преди компилирането на останалата част от скрипта. В този случай той казва на скрипта да използва stdio.h библиотека. Налични са огромен брой препроцесори за различни задачи.

Stdio.h се грижи за получаване на вход от потребителя на програмата и извеждане на информация обратно към тях.

/* това е скрипт Hello World в C */

Следващият ред е коментар. Наклонената черта и звездата казват на компилатора да игнорира всичко между него и затварящата звезда и наклонена черта. Въпреки че това може да изглежда безсмислено, възможността да оставите на себе си и на другите ясни бележки за това какво прави вашият код е основен навик, който трябва да влезете.

Основната функция

int main (недействителен)

Всяка програма на C трябва да има a главен функция. Main е функция, която връща цяло число, означено с международен. Скобите след main са за неговите аргументи, въпреки че в този случай не приема нито един, поради което използвате нищожен ключова дума.

Пишете кода, който трябва да се изпълни между две къдрави скоби.

{ printf("Здравей, свят! \н"); връщане на 0; }

Вътре във функцията извиквате printf() функция. Точно като main(), printf е функция. Разликата е, че printf е функция в stdio библиотека, която сте включили в началото.

Printf отпечатва всичко в скобите, между кавичките, на конзолата. В е escape последователност, наречена нов ред, която казва на компилатора да прескочи към следващия ред в конзолата, преди да продължи.

Имайте предвид, че тези редове завършват на точки и запетая, който компилаторът използва, за да раздели една задача от следващата. Обърнете специално внимание на тези точки и запетая – пропускането им е причина номер едно нещата да не вървят както трябва!

Накрая функцията се връща с числото 0, завършвайки програмата. В main() функцията винаги трябва да връща цяло число и връщане = 0; сигнализира на компютъра, че процесът е бил успешен.

Разбирането на всяка стъпка от този скрипт е чудесно начало в изучаването както на синтаксиса на C, така и на това как работи езикът.

2. Създаване на ваши собствени C функции

Можете да създадете свои собствени персонализирани функции в C. Вместо да отпечатвате Hello World в основната функция, създайте нова функция, която да го направи вместо вас.

недействителен print_for_me() { printf("Здравей, свят! \н"); }

Нека разбием това.

нищожен е ключова дума, което означава, че следната функция няма да върне нищо.

print_for_me() е името на функцията, а празните скоби показват, че не изисква аргументи, за да работи. Аргументът е всяка част от информацията, която трябва да се предаде на функция, за да работи – по-късно ще добавите свой собствен аргумент, за да промените изхода! Забележка: Това не е същото като функцията main(), над която е използвана void. Тази функция не може да приема аргументи, докато тази може (но в този случай не е задължително).

Кодовият блок трябва да ви е познато - това е просто изявлението за печат от оригиналната основна функция.

Сега можете да извикате тази функция от основната си функция.

int main (недействителен) {print_for_me(); print_for_me(); връщане на 0; }

Тук можете да видите ползата от използването на вашата собствена функция. Вместо да пишете printf(„Здравей, свят! \н") всеки път можете да извикате функцията два пъти.

В момента това може да не изглежда толкова важно, но ако вашата функция print_for_me съдържа много редове код, възможността да я извикате толкова лесно е страхотно спестяване на време!

Здравей свят, извеждане два пъти чрез множество извиквания на функции

Това е основна идея за програмиране, с която ще се сблъскате през цялото си образование. Напишете своя собствена функция веднъж, вместо да пишете едни и същи големи парчета код отново и отново.

3. Използване на прототипи на функции в C

Прототипите са един от основните начини, по които начинаещият C се различава от другите езици. Накратко, прототипът е като предварителен преглед на функция, дефинирана по-късно. Ако напишете функцията print_for_me() след основната функция, може да получите предупреждение при компилиране:

Съставно изображение, показващо код без прототип и предупреждението, което компилаторът на c дава

Предупредителното съобщение ви казва, че компилаторът се е сблъскал с функцията print_for_me преди да бъде декларирана, така че не може да е сигурен, че ще работи правилно, когато програмата се изпълнява.

Кодът ще продължи да работи, но предупреждението може да бъде избегнато напълно чрез използване на прототип.

#включи недействителен print_for_me(); int main (недействителен) {print_for_me(); print_for_me(); връщане на 0; } void print_for_me() { printf("Здравей, свят! \н"); }

Като разгледате пълната програма, можете да видите, че прототипът за print_for_me() съществува в началото на програмата, но не съдържа нищо. Функцията прототип показва на компилатора как трябва да изглежда функцията и дали изисква аргументи или не.

Това означава, че когато го извикате в основната функция, компилаторът знае дали е извикана правилно и може да изведе предупреждение или грешка, ако е необходимо. Това може да е нещо, което изглежда странно сега, но знанието за тях сега ще помогне в бъдеще.

Здравей свят, извеждане два пъти чрез множество извиквания на функции

Тази програма все още работи без прототип, но е добра практика за използване. Резултатът все още изглежда същият засега, нека го променим, за да го направим по-личен!

4. Предаване на аргументи на C функции

Промяна на скрипта

За тази последна стъпка ще поискате името на потребителя и ще запишете техния вход. След това ще го използвате във функцията, която сте създали преди. В C думите не са известни като низове, както в други езици за програмиране.

Вместо това те са масив от единични знаци. Символът за масив е [] и ключовата дума е char. Започнете с актуализиране на вашата прототипна функция в началото на вашия скрипт:

#включи  void print_for_me (име на символ []); 

Сега компилаторът ще знае, че функцията по-късно в скрипта приема извикан масив от знаци име. Засега този герой не съществува. Актуализирайте основната си функция, за да я създадете, и я използвайте, за да съхранявате въведените от потребителя:

int main (недействителен) { char име[20]; printf("Въведете име: "); scanf("%s", име); print_for_me (име); print_for_me("Всички!"); връщане на 0; }

Първият ред в main създава масив от знаци с 20 възможни интервала, наречени име. След това потребителят е подканен да въведе името си с помощта на printf. Следващият ред използва нова функция, наречена scanf който приема следващата дума, въведена от потребителя.

В "%с" казва на функцията, че трябва да съхранява данните като низ и да я извика име.

Промяна на функцията

Сега, когато се обадите на print_for_me, можете да включите име в скобите. На следващия ред ще видите, че можете да предавате и други знаци, стига да са между кавички. И двата пъти това, което е в скобите, се предава на функцията print_for_me.

Променете това сега, за да използвате новата информация, която му давате:

void print_for_me (име на символи[]) { printf("Здравей, "); поставя (име); }

Тук можете да видите, че скобите са актуализирани точно като прототипа в началото на скрипта. Вътре все още печатате hello с помощта на printf. Ето една нова функция поставя. Това е по-усъвършенствана версия на printf.

Всичко, поставено в скобите, ще бъде отпечатано на конзолата, а нов ред ( който сте използвали по-рано) се добавя автоматично.

Запазете и компилирайте кода си по същия начин, по който сте го направили по-рано — имайте предвид, че можете да назовете програмата нещо различно, ако не искате да презапишете по-ранната си програма. Аз кръстих моя здравей2:

Готовата програма в C

Както трябва да видите, програмата приема входа и го използва във функцията, преди да изпрати предварително зададения поздрав „Всички!“ отново дава два отделни изхода на една и съща функция.

Азбуката на C програмирането

Тази програма е проста, но някои от понятията в нея не са. По-усъвършенстваният C код трябва да бъде написан много добре, за да се предотвратят сривове. Ето защо мнозина смятат, че е отличен език за изучаване първо тъй като възпитава добри навици на новите програмисти.

Други смятат, че изучаването на C++ е по-добра идея, тъй като се основава на C, като същевременно запазва по-ниския си системен контрол. (Има и Rust, който трябва да се вземе предвид - това е вълнуващ език за програмиране това е синтактично подобно на C++.)

Едно е сигурно: езици като Python са много по-подходящи за начинаещи. За стар език C все още се използва навсякъде, но Python може да е езикът на бъдещето 6 причини защо Python е езикът за програмиране на бъдещетоИскате да научите или разширите своите умения за програмиране? Ето защо Python е най-добрият език за програмиране за изучаване тази година. Прочетете още !

Иън Бъкли е журналист на свободна практика, музикант, изпълнител и видео продуцент, живеещ в Берлин, Германия. Когато не пише или не е на сцената, той се занимава с електроника или код на „Направи си сам“ с надеждата да стане луд учен.