c++不能在全局作用域单独的给变量赋值
全局作用域:
int i;
i=666; 报错: ‘i’ does not name a type
int i;
int j=i=666;OK!
为什么会这样啊!感觉好奇怪。
楼主没必要感觉奇怪,只要知道这是语法规定的就好。
空白区域只允许声明和定义变量/函数,除此之外的语句都要写到函数体里面,通过调用函数来执行语句。
等你学过《操作系统》和《编译原理》之后,就知道这是为什么了。
函数内可以只赋值,函数外不能只赋值。脚本语言除外。
C语言 是面向函数编程的语言,里面的任何功能的实现,都是通过函数调用来完成的。
(C++是C的扩展,编译器底层还是和C程序一样,面向函数进行的编译。先学好C吧,这是基础。)
而函数体里面就写着各种实现功能的语句以及子函数。
程序的入口函数是main函数,一个程序通常只能有一个main函数。
空白处用来定义和声明变量和函数,不能执行语句。
变量的定义过程中,只允许初始化赋值,其他行为都不被允许。
这没什么好奇葩的,习惯了就好了。
你往后面学,Windows桌面开发,会有更奇葩的事情发生。如果稍不注意,就彻底糊涂了。