*C语言中的返回值*
| 例子1
错误代码演示:
int* getX(){ int x = 1; return &x; }
说明:方法内部的局部变量会在方法被调用之后,被销毁,即:他的存储空间会被释放。所以像这个例子中的做法不会报错但是不建议,因为x的地址到了方法外面就不好使了。
那么如果程序中我们就需要这样做的时候因该怎么办呢?
方法是将x定义为静态的,即:static int x = 1;因为静态变量跟全局变量一样,程序运行期间都不会被销毁,存储空间在程序运行期会一直存在,所以就算方法调用之后该变量
的地址任然有效。
下面是正确的代码:
int* getX(){ static int x = 1; return &x; }