Основы языка C — различия между версиями
Blindman (обсуждение | вклад) (→Простейшая структура программы) |
Blindman (обсуждение | вклад) (→Функции и процедуры) |
||
Строка 17: | Строка 17: | ||
=== Функции и процедуры === | === Функции и процедуры === | ||
+ | |||
+ | Весь исполняемый код содержится в функциях (называемых также подпрограммами или процедурами). Функция - это обособленный участок кода, который выполняет определенные действия и может быть многократно вызван из других частей программы. Функция может возвращать значение, являющееся результатом ее исполнения. Вызывающая программа может передать в функцию параметры (аргументы), от значения которых зависит результат выполнения функции. В этом отношении функции в программе напоминают математические функции. | ||
+ | |||
+ | Определение функции выглядит следующим образом: | ||
+ | |||
+ | <source lang="c"> | ||
+ | int plus(int a, int b) | ||
+ | { | ||
+ | return a + b; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Этот код определяет функцию с именем '''plus''', которая принимает 2 аргумента a и b, являющихся целыми числами ('''int'''), и возвращает целое число. В фигурные скобки заключено ''тело функции'', то есть последовательность операций, которые будут выполняться при каждом вызове. В данном примере, функция возвращает ('''return''') сумму своих аргументов. | ||
+ | |||
+ | Для указания того, что функция не принимает аргументов и/или не возвращает значения, используется зарезервированное слово '''void''': | ||
+ | |||
+ | <source lang="c"> | ||
+ | |||
+ | /* Не принимает аргументы, не возвращает значение */ | ||
+ | void init(void) | ||
+ | { | ||
+ | /* Тело функции */ | ||
+ | } | ||
+ | |||
+ | /* Принимает аргументы, не возвращает значение */ | ||
+ | void start(int number) | ||
+ | { | ||
+ | /* Тело функции */ | ||
+ | } | ||
+ | |||
+ | /* Не принимает аргументы, возвращает значение */ | ||
+ | int receive(void) | ||
+ | { | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | Выполнение функции, возвращающей значение, всегда должно завершаться оператором '''return'''. | ||
+ | |||
== Переменные и типы данных == | == Переменные и типы данных == | ||
=== Определение переменных === | === Определение переменных === |
Версия 16:25, 30 августа 2008
Содержание
Введение
Язык C был разработан в начале 70-х годов 20 века компанией AT&T, и до сих пор является одним из основных языков системного программирования. Являясь языком высокого уровня, C в то же время предоставляет возможности, присущие программированию на ассемблере, такие как низкоуровневый доступ к памяти. Программы, написанные на C, близки по эффективности к ассемблерным программам.
Важной особенностью языка C является переносимость программ. Одна и та же программа часто может быть скомпилирована для исполнения на различных процессорах с минимальными изменениями.
Структура программы
Простейшая структура программы
Простейшая законченная программа состоит из одной функции main:
<source lang="c"> int main(void) {
return 0;
} </source>
Функции и процедуры
Весь исполняемый код содержится в функциях (называемых также подпрограммами или процедурами). Функция - это обособленный участок кода, который выполняет определенные действия и может быть многократно вызван из других частей программы. Функция может возвращать значение, являющееся результатом ее исполнения. Вызывающая программа может передать в функцию параметры (аргументы), от значения которых зависит результат выполнения функции. В этом отношении функции в программе напоминают математические функции.
Определение функции выглядит следующим образом:
<source lang="c"> int plus(int a, int b) {
return a + b;
} </source>
Этот код определяет функцию с именем plus, которая принимает 2 аргумента a и b, являющихся целыми числами (int), и возвращает целое число. В фигурные скобки заключено тело функции, то есть последовательность операций, которые будут выполняться при каждом вызове. В данном примере, функция возвращает (return) сумму своих аргументов.
Для указания того, что функция не принимает аргументов и/или не возвращает значения, используется зарезервированное слово void:
<source lang="c">
/* Не принимает аргументы, не возвращает значение */ void init(void) {
/* Тело функции */
}
/* Принимает аргументы, не возвращает значение */ void start(int number) {
/* Тело функции */
}
/* Не принимает аргументы, возвращает значение */ int receive(void) {
return 0;
}
</source>
Выполнение функции, возвращающей значение, всегда должно завершаться оператором return.
Переменные и типы данных
Определение переменных
Базовые типы данных
Массивы
Структуры
Указатели
Условные операторы и циклы
Условный оператор if
Условный оператор, варианты использования:
- простейший:
if( a==1 ){ b=2 };
- с веткой "иначе":
if( a==1 ){ b=2 }else{ c=3 };
- с 2 ветками "иначеесли" и веткой "иначе":
if( a==1 ){ b=2 }elseif( a==2 ){ c=3 }elseif( a==3 ){ d=4 }else{ e=5 };
- со сложным условием:
if( a==1 && (c==0 || q==3) ){ b=2 };
Условный оператор switch
Цикл for
Оператор цикла, варианты использования:
- простейший:
for( int a=1; a<10; a++ ){ b=b+a };
- с двойной переменной:
for( int a=1,b=2; a<10 && b>5 ; a++,b-- ){ c=c+3*b+a };