return a; 返回的是数组地址,也就是指针,局部变量是放在调用堆栈里的,函数退出了,堆栈释放了,但数据还在。看下编译后的汇编就明白了。不过也跟编译器有关系。你可以做个实验,main里调用try两次,对a的赋值两次不同,看第一次数据的还在不在?
你这不是局部变量的问题,而是数据在内存中的存储问题,你的代码中try()函数传递的是数组的地址,所以主函数中仍可以操作数组
69,382
社区成员
243,073
社区内容
加载中
试试用AI创作助手写篇文章吧