C语言中变量作用域与存储方式有何不同?

2026-04-29 14:061阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计6758个文字,预计阅读时间需要28分钟。

C语言中变量作用域与存储方式有何不同?

变量按作用域可分为局部变量和全局变量。按存储方式又可分为自动变量(auto)、静态变量(static)、寄存器变量(register)和外部变量(extern)。注意,这里的自动变量不是指auto关键字。

变量按作用域可分为“局部变量”和“全局变量”。按存储方式又可分为“自动变量(auto)”、“静态变量(static)”、“寄存器变量(register)”和“外部变量(extern)”。注意,这里的“自动变量”不是指的“动态变量”。

什么叫“寄存器”?我们知道,内存条是用来存储数据的,硬盘也是存储数据的,而在 CPU 内部也有一些用来存储数据的区域,即寄存器。寄存器是 CPU 的组成部分,是 CPU 内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。它同内存一样,只不过它能存储的数据要少得多。

局部变量

局部变量是定义在函数内部的变量,全局变量是定义在函数外部的变量。

局部变量只在本函数内有效,即只有在本函数内才能使用,在本函数外不能使用。如果局部变量定义在子函数中,那么只能在该子函数中使用。该子函数调用完后,系统为该子函数中的局部变量分配的内存空间就会被释放掉。

如果局部变量定义在主函数 main 中,那么只能在 main 函数中使用,main 函数执行结束后,系统为其中的局部变量分配的内存空间就会被释放掉。主函数也不能使用其他函数中定义的变量。所以不同函数中可以定义同名的变量,但它们所表示的是不同的对象,互不干扰。
阅读全文

本文共计6758个文字,预计阅读时间需要28分钟。

C语言中变量作用域与存储方式有何不同?

变量按作用域可分为局部变量和全局变量。按存储方式又可分为自动变量(auto)、静态变量(static)、寄存器变量(register)和外部变量(extern)。注意,这里的自动变量不是指auto关键字。

变量按作用域可分为“局部变量”和“全局变量”。按存储方式又可分为“自动变量(auto)”、“静态变量(static)”、“寄存器变量(register)”和“外部变量(extern)”。注意,这里的“自动变量”不是指的“动态变量”。

什么叫“寄存器”?我们知道,内存条是用来存储数据的,硬盘也是存储数据的,而在 CPU 内部也有一些用来存储数据的区域,即寄存器。寄存器是 CPU 的组成部分,是 CPU 内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。它同内存一样,只不过它能存储的数据要少得多。

局部变量

局部变量是定义在函数内部的变量,全局变量是定义在函数外部的变量。

局部变量只在本函数内有效,即只有在本函数内才能使用,在本函数外不能使用。如果局部变量定义在子函数中,那么只能在该子函数中使用。该子函数调用完后,系统为该子函数中的局部变量分配的内存空间就会被释放掉。

如果局部变量定义在主函数 main 中,那么只能在 main 函数中使用,main 函数执行结束后,系统为其中的局部变量分配的内存空间就会被释放掉。主函数也不能使用其他函数中定义的变量。所以不同函数中可以定义同名的变量,但它们所表示的是不同的对象,互不干扰。
阅读全文