88问答网
所有问题
C语言为什么规定对所有用到的变量要“先定义,后使用
如题所述
举报该问题
推荐答案 2019-10-15
规定“所有用到的变量要先定义后使用”,编译器处理起来比较方便,不会有歧义。
因为 C++ 里面,相同名字的变量在【不同的作用域】里面,是可以重复声明的。
注:每一对"{}"就是一个作用域。
比如下面的程序是可以编译通过的:
#include
using namespace std;
int main(int argc, char *argv[])
// 作用域 1 开始
{
int a = 1;
// 作用域 2 开始
{
cout << a << endl; // 输出语句 1
int a = 2;
// 作用域 3 开始
{
cout << a << endl;// 输出语句 2
int a = 3;
// 作用域 4 开始
{
cout << a << endl;// 输出语句 3
int a = 4;
cout << a << endl;// 输出语句 4
}
}
}
return 0;
}
输出结果为:
1
2
3
4
--------------------------------------------------------------------------------
如果【没有】规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序就乱套了。因为可以先使用,再定义,
输出语句1~4 就不知道自己该用哪个变量 a 了(这里有4个不同的 a)。
因为不需要“先定义,后使用”,输出语句1~4可以使用定义在任何地方的哪个变量 a 。
这样,编译器就无法确定,也就无法编译了。
--------------------------------------------------------------------------------
如果规定“所有用到的变量要先定义后使用”,上面的程序会怎么样呢?
那么上面这个程序可以正常运行:
1)在输出语句1的位置为止,只有【作用域 1 】定义了一个 a : int a=1 ,因此输出 1 。
2)在输出语句2的位置为止,【作用域 1 】和【作用域 2】分别定义了一个 a :
int a=1 ;
int a=2 ;
根据就近原则,使用最内层作用域的 a ,【作用域 2】里面的 a ,输出 2 ;
3)在输出语句3的位置为止,【作用域 1 】【作用域 2】和【作用域 3】分别定义了一个 a :
int a=1 ;
int a=2 ;
int a=3 ;
根据就近原则,使用最内层作用域的 a ,【作用域 3】里面的 a ,输出 3 ;
同理可以分析输出语句4。
这就是为什么规定“所有用到的变量要先定义后使用”的原因之一吧。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/t1cKcVggcKMKtMBBtg.html
其他回答
第1个回答 2019-11-15
定义了一个变量后,那么在内存里就有一段空间属于这个变量,这样才能对变量值进行操作(而对变量的值进行操作,就是对内存中的内容进行操作)。本回答被提问者采纳
第2个回答 2019-10-22
在c语言里面,定义变量,相当于在内存中,替这个变量申请了一个空间,将这个变量保存在内存中的一个单元中.如果没有定义的话,即在内存中不存在这个变量,也就不能使用它.
在内存中字符型占1个字节,整型占2个字节.
相似回答
C语言为什么规定对所有用到的变量要
“
先定义,后
使
答:
因为c语言是静态类型语言,变量在编译期要做类型检查,所以要预先定义
。相对的,动态类型语言则可以允许(也可以不允许)不定义直接使用,此时变量的类型是在运行时被推导的。
c语言为什么规定变量先定义后使用
这样做有什么好处?
答:
1 对于编译器处理更方便
。在编译的时候,编译器需要为变量定义符号列表,有显式的变量定义,可以让编译器更方便的查找到变量列表,从而确定变量符号列表,执行后续的编译操作。2 不容易出错。 可以识别出变量名的手打错误。比如定义了var_name, 在调用的时候如果写作了var_nane, 如果没规定要先定义后使...
C语言为何规定对所有的变量要
“
先定义,后使用
”呢?
答:
主要目的是为了让编译器首先知道该定义变量的类型
,可以事先为该变量安排存储空间,不致于最后编译失败,也有利于内存的利用和程序的效率。
C
为什么
要
规定对所有用到的变量要先定义后使用
,这样做有什么好处_百度...
答:
必须的 系统要预先分配,节省内存(片内RAM)单元。
c语言为什么规定对
所
用到的变量要
“
先定义,后使用
”,这样做有什么好处大...
答:
变量是一段有名字的连续存储空间。在源代码中通过
定义变量
来申请并命名这样的存储空间,并通过变量的名字来
使用
这段存储空间。这样体现了合理的先后顺序。
c语言为什么要规定
所
用到的变量要
“
先定义,后使用
”,这样做有什么好处...
答:
先定义变量
类型,才能是系统为每一变量分配存储空间。
C语言为什么规定要
“
先定义,后使用
”?
答:
那是c语言本身的语法
规定
而已,所以编译器的表现符合语言的行为要求
,要先定义后使用,
就是这么回事。并不是说一定绝对要提前声明,然后使用,很多语言就不要先声明,这也是语言本身的语法规定。当然,如果不先声明后使用的话,它可能就不是
c语言,
而是vb了。如果硬要说什么理由的话,因为c语言是一种强...
C语言为什么要规定对
所
用到的变量要
“
先定义,后使用
”。这样做有什么...
答:
我觉得主要是因为
C语言中变量
是要占据内存空间的,如果随便
定义使用
在管理上不方便,而且可能会造成变量的烂
使用,
导致一些不必要的错误。比如php,语法结构比较松散,在使用起来虽然可以“随心所欲”
,变量
可以不声明而直接使用,但是运行效率比较低,而且如果处理不当会有一些意想不到的错误。比如变量的...
大家正在搜
c语言中使用变量的要求是
c语言变量的定义
c语言全局变量怎么定义
c语言变量定义合法
c语言变量名有哪些
c语言的变量名
变量名的规定
数组名的规定与变量名不同
变量定义规则
相关问题
C语言为什么要规定对所有用到的变量要“先定义,后使用”,这样...
C语言为什么规定对所有用到的变量要“先定义,后使用
C语言为什么规定对所有用到的变量要“先定义,后使用”这样做有...
关于c语言中规定变量必须先定义后使用的问题
C++为什么要规定对所有用到的变量要先定义后使用,这样做有什...
C语言为什么要规定对所有用到的变量要“先定义,后使用”,这样...
刚在书上看到这样一道题:C语言为什么规定所有要用到的变量要“...
C语言为什么要规定对所用到的变量要“先定义,后使用”。这样做...