Рекламное объявление
Обучение программированию - это накопительный опыт. Помимо изучения синтаксиса выбранного вами языка, вы также должны изучить общие принципы, которые используют все языки программирования.
Понимание и изучение программирования на C может быть сложной задачей, но есть несколько основных идей, с которыми стоит ознакомиться перед началом. Простой проект - отличный способ изучить основы C.
Так с чего же начать? Привет!
1. Привет, мир!
Первая часть почти каждого курса программирования - это Привет, мир программа. Его подробное рассмотрение подчеркивает некоторые отличия C от других языков. Для начала откройте текстовый редактор или IDE Текстовые редакторы vs. IDE: что лучше для программистов?Выбор между продвинутой IDE и более простым текстовым редактором может быть трудным. Мы предлагаем некоторую информацию, которая поможет вам принять это решение. Подробнее по вашему выбору и введите этот код:
#включают / * это сценарий Hello World на C * / int main (пусто) {printf ("Привет, мир! \ n "); возврат 0; }
Этот короткий фрагмент кода выводится на консоль перед завершением программы. Сохраните его где-нибудь, чтобы легко запомнить как Привет. Теперь вам нужно скомпилировать и собрать свой файл.
Заставляя его работать
Обычно для запуска сценариев C. Вам не нужно устанавливать какое-либо дополнительное программное обеспечение на компьютер. Откройте окно терминала (или командную строку, если вы работаете в Windows) и перейдите в каталог, в котором вы сохранили свой скрипт.
Способ компиляции и запуска файла зависит от системы:
- Пользователи Windows: Сделайте свой файл исполняемым, набрав cl hello.c и нажав Enter. Это создаст hello.exe в той же папке, которую вы можете запустить, набрав Привет.
- Пользователи Linux и macOS: Тип gcc -o привет hello.c и нажмите Enter, чтобы сделать его исполняемым, и запустите, набрав ./Привет.
Какой бы метод вы ни использовали, запуск вашего скрипта должен показать вам следующее:
Если это не сработало в Windows, убедитесь, что вы запустили командная строка в режиме администратора. Для macOS вам может потребоваться установить Xcode из магазина приложений и выполните следующие действия из StackOverflow.
Теперь давайте посмотрим на программу построчно, чтобы увидеть, как она работает, и улучшить ее!
Под капотом: понимание языка C
Препроцессоры
Только что созданный сценарий начинается с включения библиотеки.
#включают
Первая строка в скрипте называется препроцессор. Это выполняется до компиляции остальной части скрипта. В этом случае он сообщает сценарию использовать stdio.h библиотека. Доступно огромное количество препроцессоров для разных задач.
Stdio.h заботится о получении ввода от пользователя программы и выводе информации обратно ему.
/ * это сценарий Hello World на C * /
Следующая строка - комментарий. Косая черта и звездочка указывают компилятору игнорировать все, что находится между ним и закрывающей звездочкой и косой чертой. Хотя это может показаться бессмысленным, возможность оставлять себе и другим четкие заметки о том, что делает ваш код, является важной привычкой.
Основная функция
int main (пусто)
Каждая программа на C должна иметь главный функция. Main - это функция, которая возвращает целое число, обозначенное как int. Скобки после main предназначены для его аргументов, хотя в этом случае он не принимает их, поэтому вы используете пустота ключевое слово.
Вы пишете код, который будет заключен между двумя фигурными скобками.
{printf ("Привет, мир! \ n "); возврат 0; }
Внутри функции вы вызываете printf () функция. Как главный(), printf - это функция. Разница в том, что printf - это функция в stdio библиотека, которую вы включили в начале.
Printf выводит на консоль все, что указано в скобках, между кавычками. В \ п - это escape-последовательность, называемая новой строкой, сообщающая компилятору, что перед продолжением нужно перейти к следующей строке в консоли.
Обратите внимание, что эти строки заканчиваются на точка с запятой, который компилятор использует для отделения одной задачи от другой. Обратите особое внимание на эти точки с запятой - их отсутствие - это основная причина того, что что-то идет не так!
Наконец, функция возвращается с числом 0, завершая программу. В главный() функция всегда должна возвращать целое число, и возврат = 0; сигнализирует компьютеру, что процесс прошел успешно.
Понимание каждого шага этого сценария - отличное начало для изучения синтаксиса Си и того, как он работает.
2. Создание собственных функций C
Вы можете создавать свои собственные пользовательские функции на C. Вместо того, чтобы печатать Hello World в основной функции, создайте новую функцию, которая сделает это за вас.
void print_for_me () {printf ("Привет, мир! \ n "); }
Давайте разберемся с этим.
пустота - ключевое слово, означающее, что следующая функция ничего не вернет.
print_for_me () - это имя функции, а пустые скобки показывают, что для работы не требуются аргументы. Аргумент - это любая информация, которую нужно передать функции, чтобы она работала - позже вы добавите собственный аргумент, чтобы изменить вывод! Примечание: Это не то же самое, что и функция main () выше, которая использовала void. Эта функция не может принимать аргументы, в то время как эта может (но в данном случае не обязательно).
Кодовый блок должно быть вам знакомо - это просто оператор печати из исходной функции main.
Теперь вы можете вызвать эту функцию из своей основной функции.
int main (пусто) {print_for_me (); print_for_me (); возврат 0; }
Вы можете увидеть здесь преимущество использования вашей собственной функции. Вместо того, чтобы печатать printf («Привет, мир! \ n ”) каждый раз вы можете вызывать функцию дважды.
Прямо сейчас это может показаться не таким важным, но если ваша функция print_for_me содержит много строк кода, возможность так легко вызвать ее - отличная экономия времени!
Это фундаментальная идея программирования, с которой вы будете сталкиваться на протяжении всего обучения. Напишите свою собственную функцию один раз, а не пишите одни и те же большие куски кода снова и снова.
3. Использование прототипов функций в C
Прототипы - одно из главных отличий новичка C от других языков. Короче говоря, прототип - это как предварительный просмотр функции, определенной позже. Если вы напишете функцию print_for_me () после основной функции, вы можете получить предупреждение при компиляции:
Предупреждающее сообщение сообщает вам, что компилятор столкнулся с функцией print_for_me до того, как она была объявлена, поэтому он не может быть уверен, что она будет работать правильно при запуске программы.
Код все равно будет работать, но предупреждения можно вообще избежать, используя прототип.
#включают void print_for_me (); int main (пусто) {print_for_me (); print_for_me (); возврат 0; } void print_for_me () {printf ("Привет, мир! \ n "); }
Посмотрев на полную программу, вы увидите, что прототип print_for_me () существует в начале программы, но ничего не содержит. Функция-прототип показывает компилятору, как должна выглядеть функция, и требуются ли ей аргументы или нет.
Это означает, что когда вы вызываете его в основной функции, компилятор знает, правильно ли он вызывается, и может выдать предупреждение или ошибку, если это необходимо. Сейчас это может показаться странным, но знание о них сейчас поможет в будущем.
Эта программа по-прежнему работает без прототипа, но ее можно использовать. На данный момент результат по-прежнему выглядит так же, давайте изменим его, чтобы сделать его более личным!
4. Передача аргументов функциям C
Изменение сценария
На этом последнем шаге вы попросите имя пользователя и запишите его ввод. Затем вы будете использовать его в созданной ранее функции. В C слова не называются строками, как в других языках программирования.
Вместо этого они представляют собой массив отдельных символов. Символ для массива: [] и ключевое слово символ. Начните с обновления функции прототипа в начале сценария:
#включают void print_for_me (имя символа []);
Теперь компилятор будет знать, что функция позже в скрипте принимает массив символов, называемый имя. Пока этого персонажа не существует. Обновите свою основную функцию, чтобы создать ее, и используйте ее для хранения пользовательского ввода:
int main (пусто) {имя символа [20]; printf ("Введите имя:"); scanf ("% s", имя); print_for_me (имя); print_for_me («Всем!»); возврат 0; }
Первая строка в main создает массив символов с 20 возможными пробелами с именем name. Затем пользователю предлагается ввести свое имя с помощью printf. В следующей строке используется новая функция с именем сканф который берет следующее слово, которое вводит пользователь.
В «% S» сообщает функции, что она должна хранить данные в виде строки, и вызывает ее имя.
Изменение функции
Теперь, когда вы вызываете print_for_me, вы можете включить имя в скобках. В следующей строке вы увидите, что вы также можете передавать другие символы, если они заключены в кавычки. Оба раза то, что указано в скобках, передается функции print_for_me.
Измените это сейчас, чтобы использовать новую информацию, которую вы ему предоставляете:
void print_for_me (имя символа []) {printf ("Привет,"); кладет (имя); }
Здесь вы можете видеть, что скобки были обновлены, как и прототип в начале скрипта. Внутри вы по-прежнему печатаете hello с помощью printf. Новая функция здесь ставит. Это более продвинутая версия printf.
Все, что помещено в скобки, будет напечатано на консоли, а новая строка (символ \ п вы использовали ранее) добавляется автоматически.
Сохраните и скомпилируйте свой код так же, как и раньше - обратите внимание, что вы можете назвать программу как-нибудь иначе, если вы не хотите перезаписывать свою предыдущую программу. Я назвал свой привет2:
Как видите, программа принимает ввод и использует его в функции перед отправкой предустановленного приветствия «Всем!» снова дает два отдельных выхода для одной и той же функции.
Азбука программирования на C
Эта программа проста, но некоторые концепции в ней нет. Более продвинутый код C должен быть написан очень хорошо, чтобы предотвратить сбои. Вот почему многие думают, что это отличный язык для изучения первым поскольку это прививает хорошие привычки новым программистам.
Другие считают, что изучение C ++ - лучшая идея, поскольку он основан на C, сохраняя при этом более низкий системный контроль. (Также стоит подумать о Rust - это захватывающий язык программирования синтаксически похож на C ++.)
Одно можно сказать наверняка: языки, такие как Python намного более дружелюбны к новичкам. Для старого языка C все еще используется везде, но Python может быть языком будущего 6 причин, почему Python - это язык программирования будущегоХотите узнать или расширить свои навыки программирования? Вот почему Python - лучший язык программирования для изучения в этом году. Подробнее !
Ян Бакли - независимый журналист, музыкант, исполнитель и видеопродюсер, живущий в Берлине, Германия. Когда он не пишет или не на сцене, он возится с электроникой или кодом своими руками в надежде стать безумным ученым.