Feladat 1: Próbáljuk ki a következő kódot és magyarázzuk meg a hiba okát.
#include<stdio.h> 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 <stdio.h> 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.