【发布时间】:2016-03-22 02:46:34
【问题描述】:
int * addition(int arr[])
{
int sum=0;
for(int i=0;i<4;i++)
sum+=arr[i];
return ∑
}
int main()
{
int arr[4]{1,3,4,5}, * ptr=addition(arr);
cout<<*ptr<<endl;
return 0;
}
由于变量sum 是函数addition 的局部变量,因此一旦程序控制移出函数,该变量就应该被销毁,但它仍然给出输出13。为什么?
Compiler: g++ 4.8.2 on Ubuntu 14.04 LTS
【问题讨论】: