c函数递归,同一常量每次调用是否都会重新分配空间
c函数递归,同一常量每次调用是否都会重新分配空间,如
int land( int n)
{
int k;
k = n + 1;
return n < 0 ? k: land(n - 1) + k;
}
land函数中的常量 1 是否每次递归调用都会重新分配一个空间,即有不同的地址。
[解决办法]
不会的,作为常量直接写进代码段里去了
[解决办法]
只有变量才需要分配空间
[解决办法]
不会的。常量都在代码段里。
[解决办法]
嗯
[解决办法]
只有变量才会分配空间
[解决办法]
常量不会,因为它不存在栈上的,而是存放在RD数据段里(Linux)或者数据段里(Windows);
不过变量在递归中会从新申请空间,所以如果一个没有尽头的递归会使栈溢出。
[解决办法]
1,2,3
'1','2','3' 这些玩意都是常量,不共享,因为你没法把1改成2,你改的是变量。
你没法把'1'改成'2',你改的只是变量。