在一个函数中定义了一个变量,如何在另一个函数使用这个变量

问题描述:

在一个函数中定义了一个变量,如何在另一个函数使用这个变量
1个回答 分类:综合 2014-10-20

问题解答:

我来补答
C/C++中,函数体内定义的变量具有函数作用域,无法在外部使用这个变量本身.由于这种定义式在栈内存分配空间,变量一旦被创建,函数结束后就会被自动销毁,因此也称为自动(auto)变量.
如果要在多个函数中共享变量,那么可以使用作用域为全局/编译单元的静态变量.这些变量定义后,在进程开始时自动创建,进程结束时自动销毁.
例如
int a = 2;
static int b = 7;
int f()
{
a = 3;
b = 4;
}
int g()
{
a = 5;
b = 6;
}
另外一种间接的方案是,用自动变量定义指针,然后用指针指向malloc/new方式获得的堆空间变量,堆空间中的变量是全局的,且需要手动释放空间.
PS.注意用extern声明的变量只是声明,没有被定义.如果整个工程中的文件都没有另外定义这些变量的话,编译器可以编译通过但链接器会报错.
====
[原创回答团]
 
 
展开全文阅读
剩余:2000
上一页:为什么只选B
下一页:第8题练习