**Feladat 1:** Próbáljuk ki a következő kódot és magyarázzuk meg a hiba okát.
#include
int main()
{
{
int a = 10, b = 20;
}
{
printf("a = %d, b = %d\n", a, b);
}
}
Megoldás: az //a// és //b// változók nem léteznek a második blokkban.
**Feladat 2:** Figyeljük meg, hogyan kezeli a **C** nyelv a blokkokat. Két kapcsos zárójel közötti utasításokat 1 blokknak kell tekinteni. Mi lesz a kimenete a következő kódnak és miért?
#include
int main()
{
int n = 1;
{
int n = 2;
printf("%d\n", n);
}
printf("%d\n", n);
}
Megoldás: hiába azonosak a változónevek (n) a C nyelv a blokkon belül egyedileg kezeli, így a külső //n// más értket fog tartalmazni.