Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:
 { [oбъявление]
    :
    оператор; [оператор];
    :
 }

Заметим, что в конце составного оператора точка с запятой не ставится. Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.
Пример 1
int main ()
{
  int    q,b;
  double t,d;
  :
  if (...)
   {
     double t,d;
     :
   }
  :
  return (0);
}
Переменные e,g,f,q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т.е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int. Отметим также, что выражение стоящее после return может быть заключено в круглые скобки, хотя наличие последних необязательно.