Мне действительно интересно, почему вывод: 12 вместо 9 в следующем коде:
#include <stdio.h>
int a = 4, b = 2;
int c = 3;
int f(void);
int main(void) {
printf("%3d\n", f());
printf("%3d%3d%3d\n", a, b, c);
return 0;
}
int f(void) {
int b, c;
a = b = c = 4;
return (a + b + c);
}
Я имею в виду, поскольку b и c локальные переменные инициализированы как в функции f, когда функция вернулась, они больше не существуют поэтому они не должны быть возвращены. Кто-нибудь может объяснить?
int k(void) {
int d = 5;
return d;
}
Как функция k ничего не возвращает, верно?