Reklama

Nauka programowania to skumulowane doświadczenie. Oprócz nauki składni wybranego języka, musisz także poznać ogólne zasady, których używają wszystkie języki programowania.

Zrozumienie i nauka programowania w C może być zniechęcające, ale jest kilka podstawowych pomysłów, z którymi warto się zapoznać na początku. Prosty projekt to świetny sposób na poznanie podstaw języka C.

Więc od czego zacząć? Mówiąc cześć!

1. Witaj świecie!

Pierwszą częścią prawie każdego kursu kodowania jest Witaj świecie program. Omówienie go szczegółowo ukazuje niektóre różnice w języku C od innych języków. Na początek otwórz edytor tekstu lub IDE Edytory tekstu a IDE: który z nich jest lepszy dla programistów?Wybór między zaawansowanym IDE a prostszym edytorem tekstu może być trudny. Oferujemy pewne informacje, które pomogą Ci podjąć tę decyzję. Czytaj więcej do wyboru i wprowadź ten kod:

#włączać /* to jest skrypt Hello World w C */ int główny (unieważniony) { printf("Witaj, świecie! \n"); zwróć 0; }

Ten krótki fragment kodu jest drukowany na konsoli przed zakończeniem programu. Zapisz go w miejscu łatwym do zapamiętania jako

instagram viewer
cześć, c. Teraz musisz skompilować i zbudować swój plik.

Jak to działa

Zwykle nie musisz instalować żadnego dodatkowego oprogramowania na swoim komputerze, aby uruchamiać skrypty C. Otwórz okno terminala (lub wiersz poleceń, jeśli korzystasz z systemu Windows) i przejdź do katalogu, w którym zapisałeś skrypt.

Sposób, w jaki kompilujesz i uruchamiasz swój plik, różni się w zależności od systemu:

  • Użytkownicy systemu Windows: Ustaw plik wykonywalny, wpisując cl cześć.c i naciskając enter. Spowoduje to utworzenie hello.exe w tym samym folderze, które możesz uruchomić, wpisując dzień dobry.
  • Użytkownicy Linuksa i macOS: Rodzaj gcc -o cześć witam.c i naciśnij klawisz Enter, aby uczynić go wykonywalnym, i uruchom go, wpisując ./dzień dobry.

Niezależnie od użytej metody, uruchomienie skryptu powinno pokazać to:

Dane wyjściowe pokazujące wyniki Hello World! szkic w C

Jeśli to nie działało w systemie Windows, upewnij się, że uruchomiłeś wiersz poleceń w trybie administratora. W przypadku systemu macOS może być konieczne zainstalowanie Xcode ze sklepu App Store i wykonaj następujące kroki ze StackOverflow.

Przyjrzyjmy się teraz programowi linijka po linijce, aby zobaczyć, jak to działa i ulepszyć go!

Pod maską: zrozumienie języka C

Preprocesory

Skrypt, który właśnie utworzyłeś, zaczyna się od włączenia biblioteki.

#włączać 

Pierwsza linia w skrypcie nazywa się a preprocesor. Jest to wykonywane przed skompilowaniem reszty skryptu. W tym przypadku mówi skryptowi, aby użył stdio.h Biblioteka. Istnieje ogromna liczba preprocesorów do różnych zadań.

Stdio.h zajmuje się pobieraniem danych wejściowych od użytkownika programu i wysyłaniem do nich informacji.

/* to jest skrypt Hello World w C */

Kolejna linia to komentarz. Ukośnik i gwiazdka informują kompilator, aby zignorował wszystko między nim a zamykającą gwiazdką i ukośnikiem. Chociaż może się to wydawać bezcelowe, możliwość pozostawienia sobie i innym jasnych informacji na temat tego, co robi twój kod, jest podstawowym nawykiem, w który należy się nabrać.

Główna funkcja

int główny (unieważniony)

Każdy program w C musi mieć Główny funkcjonować. Main to funkcja, która zwraca liczbę całkowitą, oznaczoną przez int. Nawiasy po main służą do jego argumentów, chociaż w tym przypadku nie ma żadnego, dlatego używasz znaku próżnia słowo kluczowe.

Piszesz kod do wykonania między dwoma nawiasami klamrowymi.

{ printf("Witaj, świecie! \n"); zwróć 0; }

Wewnątrz funkcji wywołujesz printf() funkcjonować. Tak jak Główny(), printf jest funkcją. Różnica polega na tym, że printf jest funkcją w stdio biblioteka zawarta na początku.

Printf wypisuje do konsoli wszystko w nawiasach, między cudzysłowami. ten \n jest sekwencją specjalną o nazwie nowy wiersz, która mówi kompilatorowi, aby przed kontynuowaniem przeszedł do następnego wiersza w konsoli.

Zauważ, że te wiersze kończą się na średniki, którego kompilator używa do rozdzielenia jednego zadania od drugiego. Zwróć szczególną uwagę na te średniki — ich pominięcie jest główną przyczyną, dla której coś nie idzie dobrze!

W końcu funkcja powraca z liczbą 0, kończąc program. ten Główny() funkcja musi zawsze zwracać liczbę całkowitą, a powrót = 0; sygnalizuje komputerowi, że proces się powiódł.

Zrozumienie każdego kroku tego skryptu to świetny początek nauki zarówno składni C, jak i działania języka.

2. Tworzenie własnych funkcji C

Możesz tworzyć własne funkcje niestandardowe w C. Zamiast drukować Hello World w funkcji głównej, utwórz nową funkcję, która zrobi to za Ciebie.

nieważne print_for_me() { printf("Witaj, świecie! \n"); }

Rozbijmy to.

próżnia jest słowem kluczowym oznaczającym, że następująca funkcja niczego nie zwróci.

print_for_me() jest nazwą funkcji, a puste nawiasy pokazują, że nie wymaga ona argumentów do działania. Argument to dowolna informacja, którą należy przekazać funkcji, aby działała — później dodasz własny argument, aby zmienić wynik! Notatka: To nie to samo, co funkcja main(), powyżej której użyto funkcji void. Ta funkcja nie może przyjmować argumentów, podczas gdy ta może (ale w tym przypadku nie musi).

Blok kodu powinien być ci znany — to tylko instrukcja print z oryginalnej funkcji main.

Teraz możesz wywołać tę funkcję z funkcji głównej.

int główny (unieważniony) { print_for_me(); print_for_me(); zwróć 0; }

Widzisz tutaj korzyści płynące z używania własnej funkcji. Zamiast pisać printf(„Witaj świecie! \n") za każdym razem możesz dwukrotnie wywołać funkcję.

W tej chwili może to nie wydawać się tak ważne, ale jeśli twoja funkcja print_for_me zawierała wiele linii kodu, możliwość tak łatwego wywołania jej jest wielką oszczędnością czasu!

Witaj świecie, wyprowadzając dwa razy za pomocą wielu wywołań funkcji

Jest to podstawowa idea programowania, z którą natkniesz się w trakcie swojej edukacji. Napisz własną funkcję raz, zamiast pisać w kółko te same duże fragmenty kodu.

3. Używanie prototypów funkcji w C

Prototypy to jeden z głównych sposobów, w jaki początkujący C różni się od innych języków. Krótko mówiąc, prototyp jest jak podgląd funkcji zdefiniowanej później. Jeśli napiszesz funkcję print_for_me() po funkcji main, możesz otrzymać ostrzeżenie podczas kompilacji:

Obraz kompozytowy przedstawiający kod bez prototypu i ostrzeżenie, które daje kompilator c

Komunikat ostrzegawczy informuje, że kompilator wpadł na funkcję print_for_me przed jej zadeklarowaniem, więc nie można mieć pewności, że będzie działał poprawnie po uruchomieniu programu.

Kod nadal będzie działał, ale ostrzeżenia można całkowicie uniknąć, używając prototypu.

#włączać void print_for_me(); int główny (unieważniony) { print_for_me(); print_for_me(); zwróć 0; } void print_for_me() { printf("Witaj, świecie! \n"); }

Patrząc na pełny program, możesz zobaczyć, że prototyp funkcji print_for_me() istnieje na początku programu, ale nic nie zawiera. Funkcja prototypowa pokazuje kompilatorowi, jak powinna wyglądać funkcja i czy wymaga argumentów, czy nie.

Oznacza to, że kiedy wywołujesz go w funkcji main, kompilator wie, czy jest wywoływany poprawnie i może zgłosić ostrzeżenie lub błąd, jeśli jest to potrzebne. Może to być coś, co teraz wydaje się dziwne, ale wiedza o nich teraz pomoże w przyszłości.

Witaj świecie, wyprowadzając dwa razy za pomocą wielu wywołań funkcji

Ten program nadal działa bez prototypu, ale są dobrą praktyką w użyciu. Na razie dane wyjściowe nadal wyglądają tak samo, zmieńmy je, aby były bardziej osobiste!

4. Przekazywanie argumentów do funkcji C

Zmiana skryptu

W tym ostatnim kroku poprosisz o nazwę użytkownika i nagrasz jego wkład. Następnie użyjesz go w utworzonej wcześniej funkcji. W C słowa nie są znane jako ciągi, jak w innych językach programowania.

Zamiast tego są tablicą pojedynczych znaków. Symbolem tablicy jest [] a słowo kluczowe to zwęglać. Zacznij od aktualizacji funkcji prototypu na początku skryptu:

#włączać  void print_for_me (nazwa znaku[]); 

Teraz kompilator będzie wiedział, że funkcja w dalszej części skryptu pobiera tablicę znaków o nazwie Nazwa. Jak dotąd ta postać nie istnieje. Zaktualizuj swoją główną funkcję, aby ją utworzyć i użyj jej do przechowywania danych wejściowych użytkownika:

int główny (unieważniony) { nazwa znaku[20]; printf("Podaj nazwę: "); scanf("%s", nazwa); print_for_me (imię); print_for_me("Wszyscy!"); zwróć 0; }

Pierwsza linia w main tworzy tablicę znaków z 20 możliwymi spacjami o nazwie name. Następnie użytkownik jest proszony o wpisanie swojej nazwy za pomocą printf. Następna linia używa nowej funkcji o nazwie scanf który przyjmuje następne słowo, które wpisuje użytkownik.

ten "%s" mówi funkcji, że powinna przechowywać dane jako ciąg i wywołać to Nazwa.

Modyfikowanie funkcji

Teraz, gdy wywołasz print_for_me, możesz dołączyć Nazwa w nawiasach. W następnym wierszu zobaczysz, że możesz również przekazywać inne znaki, o ile znajdują się one między cudzysłowami. W obu przypadkach to, co jest w nawiasach, jest przekazywane do funkcji print_for_me.

Zmień to teraz, aby korzystać z nowych informacji, które im przekazujesz:

void print_for_me (nazwa znaku[]) { printf("Cześć, "); stawia (imię); }

Tutaj widać, że nawiasy zostały zaktualizowane, podobnie jak prototyp na początku skryptu. Wewnątrz nadal drukujesz cześć za pomocą printf. Nową funkcją jest tutaj stawia. To jest bardziej zaawansowana wersja printf.

Wszystko, co zostanie umieszczone w nawiasach, zostanie wydrukowane w konsoli wraz z nową linią ( \n używany wcześniej) zostanie dodany automatycznie.

Zapisz i skompiluj swój kod w taki sam sposób, jak wcześniej — pamiętaj, że możesz nazwać program inaczej, jeśli nie chcesz nadpisywać wcześniejszego programu. nazwałem moje cześć2:

Gotowy program w C

Jak widać, program pobiera dane wejściowe i wykorzystuje je w funkcji przed wysłaniem ustawionego powitania „Wszyscy!” ponownie dając dwa oddzielne wyjścia do tej samej funkcji.

ABC programowania w języku C

Ten program jest prosty, ale niektóre z zawartych w nim koncepcji nie są. Bardziej zaawansowany kod C musi być napisany bardzo dobrze, aby zapobiec awariom. Dlatego wielu uważa, że ​​jest to doskonały język do nauki jako pierwszy ponieważ zaszczepia dobre nawyki nowym programistom.

Inni uważają, że nauka C++ jest lepszym pomysłem, ponieważ opiera się na C, zachowując jednocześnie mniejszą kontrolę nad systemem. (Do rozważenia jest też Rust – to i ekscytujący język programowania to jest syntaktycznie podobne do C++.)

Jedno jest pewne: języki takie jak Python są znacznie bardziej przyjazne dla początkujących. W przypadku starego języka C jest nadal używane wszędzie, ale Python może być językiem przyszłości 6 powodów, dla których Python jest językiem programowania przyszłościChcesz się nauczyć lub poszerzyć swoje umiejętności programistyczne? Oto dlaczego Python jest najlepszym językiem programowania do nauki w tym roku. Czytaj więcej !

Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice DIY lub kodowaniu w nadziei, że zostanie szalonym naukowcem.