一个可以不传参数就可以在函数中改变调用者内部的变量数据的函数

来源:互联网 发布:indesign是什么软件 编辑:程序博客网 时间:2024/04/29 18:23

先贴出代码

void fun(){int *p= (int*)*(&p+1);p-=1;*p=100;}int main(){int a=10;fun();cout<<a<<endl;return 0;}
输出结果是100;

下面为了说明里面的栈帧原来我使用另一个和他相同的代码进行分析,代码与分析如下:

void fun(int x){int *p= (int*)*(&p+1);p-=1;*p=100;}int main(){int a=10;fun(a);cout<<a<<endl;return 0;}

分析:

如果main函数中还有其他变量,也可以通过p再进行减1进行修改

0 0
原创粉丝点击