#include <stdio.h>
class C
{
public:
static int i;
static int j;
};
int i = 10;
int C::i = 20;
int C::j = i + 1;
int main ()
{
printf("%d", C::j);
return 0;
}
Каково значение: C:: j
Я читал викторину С++ и наткнулся на следующий вопрос. Я думал, что ответ 11
.
int C::j = i + 1;
Поскольку он обращается к нестационарной i
, которая равна 10? Итак, я думал, что 11
должен быть ответом?
Я скомпилировал и запустил этот код через визуальную студию, и он печатает 21
. Что меня смущает. Может кто-нибудь объяснить, почему это происходит? Что мне не хватает?