Основы языка C — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Функции и процедуры)
(Функции и процедуры)
Строка 56: Строка 56:
  
 
Выполнение функции, возвращающей значение, всегда должно завершаться оператором '''return'''.
 
Выполнение функции, возвращающей значение, всегда должно завершаться оператором '''return'''.
 +
 +
Тело функции состоит из объявлений переменных и операторов. Оператор - это наименьшая структурная единица языка, команда. Словом оператор также нередко называют операцию (например, умножение). Объявление переменных будет рассмотрено в следующих разделах.
 +
 +
Последовательные операторы отделяются друг от друга символом '';'' (точка с запятой).
 +
Основные виды операторов:
 +
 +
* Присваивание <source lang="c">a = 12; // переменной a присваивается значение 12</source>
 +
* Вызов функции <source lang="c">do_something(); </source>
 +
* Блок инструкций (составной оператор) <source lang="c">{a = 12; b=14;} // присваиваются значения переменным a и b. Последовательность двух операторов рассматривается как один оператор </source>
 +
* Условный оператор. Исполняет инструкцию, только если выполняется определенное условие. <source lang="c"> if (b > 10) a = 0; // переменной a присваивается значение 0, если значение переменной b больше 10</source>
 +
* Цикл. Циклически исполняет инструкцию, пока выполняется определенное условие. <source lang="c"> while (b > 10) do_something(); // вызывать функцию do_something(), пока значение переменной b больше 10</source>
 +
 +
Более подробно различные операторы будут рассмотрены в последующих разделах.
  
 
== Переменные и типы данных ==
 
== Переменные и типы данных ==

Версия 17:12, 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.

Тело функции состоит из объявлений переменных и операторов. Оператор - это наименьшая структурная единица языка, команда. Словом оператор также нередко называют операцию (например, умножение). Объявление переменных будет рассмотрено в следующих разделах.

Последовательные операторы отделяются друг от друга символом ; (точка с запятой). Основные виды операторов:

  • Присваивание <source lang="c">a = 12; // переменной a присваивается значение 12</source>
  • Вызов функции <source lang="c">do_something(); </source>
  • Блок инструкций (составной оператор) <source lang="c">{a = 12; b=14;} // присваиваются значения переменным a и b. Последовательность двух операторов рассматривается как один оператор </source>
  • Условный оператор. Исполняет инструкцию, только если выполняется определенное условие. <source lang="c"> if (b > 10) a = 0; // переменной a присваивается значение 0, если значение переменной b больше 10</source>
  • Цикл. Циклически исполняет инструкцию, пока выполняется определенное условие. <source lang="c"> while (b > 10) do_something(); // вызывать функцию do_something(), пока значение переменной b больше 10</source>

Более подробно различные операторы будут рассмотрены в последующих разделах.

Переменные и типы данных

Определение переменных

Базовые типы данных

Массивы

Структуры

Указатели

Условные операторы и циклы

Условный оператор if

Условный оператор, варианты использования:

  1. простейший:
    • if( a==1 ){ b=2 };
  2. с веткой "иначе":
    • if( a==1 ){ b=2 }else{ c=3 };
  3. с 2 ветками "иначеесли" и веткой "иначе":
    • if( a==1 ){ b=2 }elseif( a==2 ){ c=3 }elseif( a==3 ){ d=4 }else{ e=5 };
  4. со сложным условием:
    • if( a==1 && (c==0 || q==3) ){ b=2 };

Условный оператор switch

Цикл for

Оператор цикла, варианты использования:

  1. простейший:
    • for( int a=1; a<10; a++ ){ b=b+a };
  2. с двойной переменной:
    • for( int a=1,b=2; a<10 && b>5 ; a++,b-- ){ c=c+3*b+a };

Цикл while

Препроцессор

Что такое препроцессор

Подключаемые файлы и файлы заголовков

Дополнительные определения