Я пытаюсь понять логику использования знаков препинания в С++, особенно точки с запятой. Это мой прогресс до сих пор, с некоторыми вопросами:
- Объявление вводит тип, класс или объект в область видимости, например.
int i;
- Выражение представляет собой последовательность операторов и операндов, например.
a=i+1; i++;
Оператор — это выражение или объявление.
()
Скобки группируют части выражения и окружают тесты, например.if(a==b)
,while(a==b)
,switch(myTestVal)
иfor(int i=0;i<5;i++)
{}
Фигурные скобки определяют области действия и групповые операторы, а также списки инициализации для массивов, перечислений и структур, но почему НЕ классы! Кроме того, они необходимы в операторе switch, чтобы заключить его тело, чтобы разрыв знал, с чего продолжить.,
Запятые разделяют элементы в списке, например. список аргументов или список инициализации массива.:
Двоеточия используются после меток, например, после регистровой части оператора switch и для разделения частей оператора, например, в третичном операторе '?'.Однако
;
, а не:
используется для разделения частей оператораfor
, например.for(i=0;i<5;i++)
— Почему это?;
Точки с запятой завершают операторы (выражения и объявления), за исключением случаев, когда они заканчиваются)
или:
, например. в тесте:(a==(c+b*d))
или списке аргументов.
Обратите внимание, что }
не считается завершением оператора, поэтому после }
в конце объявления функции или класса необходимо использовать ;
, поскольку все объявление является оператором, состоящим из многих других операторов. Однако реализация функции или класса не является объявлением (поскольку функция или класс уже должны быть объявлены); поэтому он не считается оператором и поэтому не имеет закрытия ;
после закрытия }
И последняя странность: почему ;
требуется после do...while
?
for
используются точки с запятой, потому что это три независимых выражения (выражение!=оператор).{}
объявить области. Если у вас есть коммутатор в другом коммутаторе,{}
уточняйте область действия каждого из них. Каждое выражение заканчивается на;
. Как иint var1, var2;
, вы можете иметьclass A {} var1, var2;
, это декларативный оператор. - person Mooing Duck   schedule 19.10.2011