gpt4 book ai didi

c - 对函数的每次递归调用是否使用相同的静态变量?

转载 作者:太空狗 更新时间:2023-10-29 15:10:24 25 4
gpt4 key购买 nike

<分区>

根据我的理解,每个被调用的函数在程序堆栈中都分配了一些内存,即使同一个函数递归地调用自身(即,每个调用在程序堆栈中都有自己的内存),这也是如此。请回答下面我程序中出现的两个问题:

如果一个变量在一个函数中被声明为静态的,那么这个函数的所有递归调用都会使用同一个变量/同一个副本吗?

如果变量没有被声明为静态的(例如,简单的“int x”),对函数的每次递归调用都会有它自己的那个变量的副本吗?如果是,当从其他函数调用一个函数(包括递归调用)时,它通常会发生这种情况吗?

#include<stdio.h>
#include<stdlib.h>

int main()
{
static int x=0;
x++;
printf("Team %d\n",x);
if(x<10)
main();
else
exit;
}

输出:

Team 1
Team 2
Team 3
Team 4
Team 5
Team 6
Team 7
Team 8
Team 9
Team 10

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com