Оператор «запятая» используется для связки нескольких выражений. Левая сторона оператора «запятая» вычисляется как не выдающая значения. Значение выражения, находящегося с правой стороны, станет значением разделенного запятыми выражения. Например:
x=(y=3, y+1);
Сначала присваивается 3 переменной y, а затем 4 переменной x. Скобки нужны, поскольку оператор «запятая» имеет более низкий приоритет, чем оператор присваивания.
Имеется возможность заставить выражение принять определённый тип с помощью оператора принудительных преобразований. Эта операция имеет следующий вид:
(тип) выражение;
где тип – это один из стандартных типов данных С или определяемый пользователем тип. Например, если необходимо, чтобы выражение x/2 имело тип float (частное со знаками после запятой), следует написать:
(float) x / 2
С имеет несколько специальных сокращённых операторов, кодирующих некоторые операторы присваивания. Например:
х = х + 10;
может быть кратко записано как
x +=10;
В С и других языках программирования циклы позволяют выполнять набор инструкций до тех пор, пока не выполниться некоторое условие. Определены три разных оператора цикла:
Итерационный цикл for
Стандартный вид цикла for следующий:
for (инициализация_цикла; выражение-условие; список_выражений) оператор;
Оператор for имеет три главные части:
a. инициализация_цикла – это место, где обычно находится оператор присваивания, используемый для установки начального значения переменной цикла.
b. выражение-условие – это выражение, определяющее условие работы цикла.
c. список_выражений – это место где определяется характер изменения переменной цикла на каждой итерации.
Эти три важные части должны разделяться точкой с запятой. Цикл for работает до тех пор, пока условие истинно. Когда условие становится ложным, выполнение программы продолжается с оператора, следующего за циклом for.
Пример
#include <stdio.h>
int main(void)
{
int x;
for(x=1; x<=100; x++) printf(“%d ”,x);
return 0;
}
В данном примере x является переменной цикла, которая изменяется и проверяется на каждой итерации цикла.
Ниже приведён пример цикла for, повторяющего несколько операторов:
for(x=100; x!=65; x-=5) {
z = sqrt(x);
printf(“The square root of %d, %f”, x, z);
}
Как sqrt(), так и printf(), вызываются и выполняются пока x не равно 65.
В цикле for проверка условия выполняется в самом начале. Это означает, что код в цикле может вообще не выполняться, если условие изначально ложно.
Одна из наиболее типичных вариаций достигается с использованием оператора «запятая», тем самым позволяя иметь две или более переменных цикла.
Например, функция reverse(). Она предназначена для копирования содержимого первого строкового аргумента во второй строковый аргумент в обратном порядке.