Исправление alysnix, (текущая версия) :
вот вам пример:
я просто переименовал вашу a в aa, и выкинул мусор.
#include <stdio.h>
int main (void) {
int aa = 400;
printf ("A0 = %d \n",aa);
{
float a = -3.7;
printf ("A1 = %f\n",a);
}
printf ("A2 = %d \n", aa); /// выведет 200
printf ("A3 = %f \n", aa); /// выведет -3.7
return 0;
}
принтует -
A0 = 400
A1 = -3.700000
A2 = 400
A3 = -3.700000
пересечений по именам нет. есть неверный вызов последнего print. и он принтует мусор, поскольку ему предложили печатать float от инта. адрес aa(int) - [bp-4], адрес a(float) - [bp-8].
итак, блоки тут вообще не причем.
Исходная версия alysnix, :
вот вам пример:
я просто переименовал вашу a в aa, и выкинул мусор.
#include <stdio.h>
int main (void) {
int aa = 400;
printf ("A0 = %d \n",aa);
{
float a = -3.7;
printf ("A1 = %f\n",a);
}
printf ("A2 = %d \n", aa); /// выведет 200
printf ("A3 = %f \n", aa); /// выведет -3.7
return 0;
}
принтует -
A0 = 400
A1 = -3.700000
A2 = 400
A3 = -3.700000
пересечений по именам нет. есть неверный вызов последнего print. и он принтует мусор, поскольку ему предложили печатать float от инта. адрес aa(int) - [bp-4], адрес a(float) - [bp-8].
итак, блоки тут вообще не причем.