当函数返回局部变量时,函数的生命期已经结束,他所分配的局部变量也已经销毁,所以如果你返回局部变量的地址,这个地址将是无效的,不能保证这个地址中的值是什么。2:严格来说,函数只能返回分配在堆上的数组的指针。比如说:int* func(){ int *p = new int[10];//数组分配在堆上 return p;} ...
13,指针不能返回局部变量地址 #include <stdio.h>//指针编程原则:不要返回函数栈内的局部变量的地址//换句话说,不要返回指向栈内局部变量的指针//因为出了函数,局部变量被销毁,这个地址也就没有意义了。int*add(intl,intr) {intret; ret=l+r;return&ret;//不能返回地址,可以加个指针变量,存储地址返回,比...