动态局部变量和静态局部变量 什么是静态变量,静态变量=全局变量,动态变量=局部变量吗?
什么是静态变量,静态变量=全局变量,动态变量=局部变量吗?
局部变量与其他三个基本不同。局部变量在函数中定义,范围是定义位置,以花括号结束。每次执行definition语句时,系统都会为变量分配内存。当作用域结束时,内存被释放。另外三个在系统运行时分配内存,直到程序结束才会释放。也就是说,局部变量与其他三个变量最明显的区别是:[1]不同的生命周期
2]不同的分配时间
3]不同的分配位置。然而,其他三个在范围上是相同的。全局变量,整个项目的作用域,无论在哪个文件中,只要声明就可以使用。一个静态全局变量,其作用域是定义变更量的文件。在C语言中,局部变量和全局变量存储在堆栈中,而malloc和new操作符动态分配的所有空间都存储在转储中。举一个简单的例子:int*ptrptr=在句子(int*)malloc(100*size of(int)),PTR存储在堆栈中,但它指向的内容在堆中。你懂了吗
局部变量-----堆栈,全局变量,静态变量-----初始化已有数据段,未初始化已有BSS段,通电后统一清除0,我们一般说有全局静态数据区常量----常数数据区动态应用---堆
在C语言中,看看如何放置全局变量和局部变量。如果将全局变量和局部变量放在一个代码文件中,则会发生冲突。所以不明显,我将编写一个C程序代码,如下图所示:
在这个C程序中,我在main函数外定义了一个全局变量para,并给出一个初始值1。在C程序的主函数中,我定义了一个变量para,它与主函数外的变量同名。
这里,C程序主函数外的变量的生命周期在整个代码中是有效的,而主函数的变量只在主函数中有效。
也就是说,当您在C程序的主函数中操作para变量时,实际上是在主函数中操作变量,而外部para变量的值仍然是1。在这个C程序中,main函数中的para变量隐藏了外部变量para。
因此,学生在学习C语言时,必须注意全局变量被同名局部变量覆盖的问题,还要了解变量的范围和生命周期。
动态局部变量和静态局部变量 局部变量是静态变量吗 局部变量存放在哪里
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。