#include <stdio.h>
char* returnStr()
{
char p='a';
return &p;
}
void returnSr()
{
int i=1;//这i的值将影响那个位置的二进制数值
int k=9;
}
int main()
{
char *str;
str=returnStr();
//returnSr();//有了这句*str就不会输出a了。堆栈指针的移动
printf("%c/n", *str);
return 0;
char* returnStr()
{
char p='a';
return &p;
}
void returnSr()
{
int i=1;//这i的值将影响那个位置的二进制数值
int k=9;
}
int main()
{
char *str;
str=returnStr();
//returnSr();//有了这句*str就不会输出a了。堆栈指针的移动
printf("%c/n", *str);
return 0;
}、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
但调用函数时,堆栈指针因数据压栈而移动,函数返回时堆栈指针将向反方向移动回来,但是栈里面的数据值没改变
#include <stdio.h>
int* returnStr()
{
int p=9;
return &p;
}
void returnSr()
{
int i=8;//这i的值将影响那个位置的二进制数值
int k=9;
}
int main()
{
int *str;
str=returnStr();
//returnSr();//有了这句*str就不会输出i得值了。堆栈指针的移动
printf("%d\n", *str);
return 0;
}