c语言函数定义与声明 调用递归函数会重复定义函数中的普通变量吗?
浏览量:3134
时间:2021-03-11 09:01:29
作者:admin
调用递归函数会重复定义函数中的普通变量吗?
一般来说,递归只是在调用自己。与调用其他函数相同。对于一个函数,当它被调用时,它内部的局部变量只在它内部有效,独立于外部调用函数,并且在被调用函数返回后自动释放。因此,如果被调用函数只返回地址的值,例如整数或字符,则外部函数可以使用同一类型变量来保存返回地址的值。但是如果你返回一个数组,一个连续的地址,那么你只返回第一个地址,你不能一次保存所有的地址值。然后,当函数调用结束时,这些地址被释放,它们就消失了。所以我希望被调用的函数将数组返回给外部函数。全局数组或malloc用于动态请求内存并返回内存。当然,也可以在内部递归地定位静态变量。每个调用使用相同的内存,静态存储不会自动释放。
C 出现函数重复定义和声明的原因有什么,要全一点的解释?
这种重复的主要原因是没有考虑函数的范围。在同一范围内,如果函数声明和定义相同,则会出现错误。函数可以在不同的空间中定义而不是全局函数,或者静态全局函数可以用静态函数定义。
C语言全局变量可以重复定义吗?
(1)C语言中的全局变量不能重复定义,但需要注意的是,C语言函数中可以定义与全局变量同名的局部变量,全局变量将暂时失效。
(2)全局变量相对于局部变量。全局变量,也称为外部变量,是在函数外部定义的变量。它不属于哪个函数,它属于一个源程序文件。它的作用域是从定义变量的位置到源文件的结尾。说明:在函数中使用全局变量时,应将其声明为全局变量。只能使用函数中声明的全局变量。但是,在函数之前定义的全局变量可以在函数中使用,而无需声明。
(3)局部变量是指只能在程序的特定过程或函数中访问的变量。局部变量相对于全局变量。在C、C#、ruby等面向对象语言中,通常只使用局部变量。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。