Для третьего вы действительно хотите это
extern int k = 10;
extern int k; //okay: this is just a declaration.
// extern int k = 4; re-define is no good.
void main()
{
cout<<k<<endl;
getchar();
}
Вы можете определить переменную только один раз.Однако вы можете объявить столько раз, сколько захотите.
Чтобы указать чуть-чуть, int i;
- это и объявление, и определение.Часто время инициации считается «определением».Для автоматической переменной и объявление, и определение выполняются одним оператором.
Таким образом, когда мы определяем int k;
память была выделена, чье имя ссылки "k".Следовательно, компоновщик будет жаловаться при попытке переопределить его.
int k;
extern int k = 3; // already defined in the previous statement
Следовательно, это также ошибка компиляции
extern int k = 3;
int k; // trying to redefine again - bad
Это, вероятно, применимо только в C ++.Я не знаком с C, поэтому не могу говорить о C. В C ++ даже мое решение будет жаловаться, но не будет выдавать ошибку.
Пожалуйста, судите меня и исправьте мои ошибки.Я тоже учусь.