Instrukcje grupujące (ang. compound statement, grouping statement) stosuje się, gdy składnia języka wymaga wystąpienia w pewnym miejscu programu dokładnie jednej instrukcji, a tymczasem czynności, które mają być wykonane przez program za pomocą jednej instrukcji zapisane być nie mogą (lub prowadziłoby to do nieczytelnych konstrukcji). Istnieje zatem w języku możliwość potraktowania wielu instrukcji jako jednej instrukcji złożonej (grupującej). Ma ona postać ujętej w nawiasy klamrowe sekwencji instrukcji, z których każda może być instrukcją pustą (sam średnik), niepustą pojedynczą (a więc zakończoną średnikiem) lub również instrukcją grupującą (ujętą w nawiasy klamrowe). Po nawiasie klamrowym kończącym instrukcję grupującą średnika nie stawiamy. Przykładem instrukcji grupującej jest definicja funkcji.
Pamiętać trzeba, o czym już mówiliśmy, że fragment programu ujęty w nawiasy klamrowe tworzy blok. Zmienne zadeklarowane wewnątrz takiego bloku tworzonego przez instrukcję grupującą są lokalne dla tego bloku: po wyjściu sterowania z takiej instrukcji zmienne zadeklarowane wewnątrz nie są już znane (i w ogóle nie istnieją; są ze stosu usuwane). Tak więc
{
int i = 5;
{
int k = fun(i);
i += k;
}
cout << "i=" << i << endl;
}
jest jedną instrukcją grupującą, złożoną z trzech instrukcji,
z których jedna jest również instrukcją grupującą. Po wykonaniu
tej instrukcji zmienne
i
i
k
nie istnieją i,
w szczególności, zmienne o tej nazwie mogą być zadeklarowane
w dalszej części ciała funkcji, w której instrukcja ta wystąpiła
(zmienna
k
jest usuwana już po wyjściu z wewnętrznego
bloku, przed ostatnią linią).
T.R. Werner, 23 lutego 2022; 19:40