21xrx.com
2024-09-17 03:55:10 Tuesday
登录
文章检索 我的文章 写文章
C语言中形参的默认存储类型及其影响
2023-06-15 18:01:22 深夜i     --     --
C语言 形参 默认存储类型 auto static 悬垂指针

在C语言中,如果没有给形参指定储存类型,那么它的默认储存类型为auto。如果函数中的变量是用auto关键字声明的,则它们的内存空间是在函数被调用时分配的,并且在函数执行完毕后会被销毁。这就意味着,当函数执行时,只有一个活动版本的这个变量,并且其值在函数执行过程中被保留。但是,这种存储类型会导致一些问题。

首先,auto关键字声明的变量是无法在函数之间共享的。也就是说,如果一个函数想要访问另一个函数中的变量,那么必须通过参数传递,或者将变量声明为全局变量。

其次,如果函数返回一个指向auto变量的指针,那么这个指针将成为悬垂指针,因为auto变量在函数执行完成后就被销毁了。

为了避免这些问题,可以使用static关键字将形参声明为静态存储类型。这将导致将内存分配到函数的静态储存区域中,并且该变量的值在函数执行后不会被销毁。但是,由于这些变量的作用域仍然限于函数,因此它们不会在函数之间共享。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复