c++中 用extern声明外部变量时能不能给变量赋初值 c++奇怪的问题,用static 声明的静态全局变量使用,用...

C++\u5916\u90e8\u53d8\u91cf\u8d4b\u503c

#include
char a[100];
void main()
{
cin>>a;
cout<<a<<endl;
}
\u697c\u4e3b\u5e94\u8be5\u662f\u521d\u5b66\u8005\u5427
\u5916\u90e8\u53d8\u91cf\u5c31\u662f\u5916\u90e8\u7684 \u53ea\u8981\u6ca1\u6709\u5c40\u90e8\u53d8\u91cf\u7684\u91cd\u540d\u5c31\u6ca1\u4e8b

\u5982\u679cextern\u53d8\u91cf\u7684\u8bf4\u660e\u548c\u4f7f\u7528\u5728\u540c\u4e00\u4e2a\u6587\u4ef6\uff0c\u8be5\u6587\u4ef6\u4e2d\u51fd\u6570\u4f7f\u7528\u8be5\u53d8\u91cf\u65f6\u4e0d\u9700\u8981\u518d\u8fdb\u884c\u8bf4\u660e\uff0ctest1.cpp\u4e2d\u5916\u9762\u76f4\u63a5int a;\u5373\u53ef\u4e0d\u9700\u8981\u8fdb\u884cextern\u58f0\u660e\uff0c\u5b83\u5728main\uff08\uff09\u5916\u672c\u6765\u5c31\u662f\u5916\u90e8\u53d8\u91cf\uff1b\u82e5\u5728\u4e24\u4e2a\u4e0d\u540c\u7684\u6587\u4ef6\uff0c\u8981\u4f7f\u7528\u5176\u4ed6\u6587\u4ef6\u7684\u5916\u90e8\u53d8\u91cf\uff0c\u5728\u4f7f\u7528\u524d\u624d\u9700\u8981\u8fdb\u884cextern\u58f0\u660e\uff0c\u9519\u8bef\u662fextern int a;\u6267\u884c\u65f6\u627e\u4e0d\u5230\u5916\u90e8\u53d8\u91cfa \uff0c\u800c\u8fdb\u884cextern int a=1;\u53ef\u80fd\u8ba4\u4e3a\u662f\u5916\u90e8\u53d8\u91cf\u58f0\u660e\uff0c\u5177\u4f53\u539f\u56e0\u4e5f\u4e0d\u662f\u5f88\u6e05\u695a \u3002static \u9759\u6001\u5168\u5c40\u53d8\u91cf\u53ea\u80fd\u5728\u5b9a\u4e49\u5b83\u7684\u6587\u4ef6\u4e2d\u4f7f\u7528

肯定不可以的啊,声明的目的是告诉编译器变量或函数的类型,暗示在某处会有他的正确定义。
准确说起来,变量与函数是相同的,都分为声明和定义,即在前面加上extern,只不过出于简单的目的,函数的声明省略了extern关键字,函数不能再声明(除非是定义)处定义函数体。
我们通常的变量声明主要是声明变量的类型(编译器认为是分配内存的方式):int variable;
这已经有足够的信息令编译器(在声明的地方)分配内存。

希望可以帮到你

不能 extern只是增加了一个外部引用符号

只有具体定义变量的位置才能够赋初值

一楼正解!

扩展阅读:extern c++用法 ... c需要extern ... extern用法举例 ... c++是什么意思 ... c++ public声明 ... c++声明 ... c++extern关键字的作用 ... excel取消函数设置 ... c++常用编译器 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网