上面的代码有很隐晦的错误,但也是非常严重的错误!
详细说明:
首先明确 a 是一个局部变量,当局部变量出自己的大括号时,就自己销毁!
何为销毁?
当 a 进入局部空间时,会向内存申请4个字节的空间,当局部变量 a 出局部空间时,就会将空间(地址)还给电脑
当我们再一次用局部变量的空间的地址访问回去,此行为就是非法!!!(已经释放的空间)
总结:只要返回临时变量的地址,就是错误的,除非此局部变量出局部空间,不销毁(比如 static )!
static作用之一
static修饰局部变量时,使得被修饰的变量成为静态变量,存储在静态区。存储在静态区的数据生命周期与程序相同,在main函数之前初始化,在程序退出时销毁。(无论是局部静态还是全局静态)