#include <iostream>
using namespace std;
int *p;
void pp(int a, int *b);
int main()
{
int a=1, b=2, c=3;
p=&b;
pp(a+c, &b);
cout<<"(2)"<<a<<','<<b<<','<<*p<<endl;
return 0;
}
void pp(int a, int *b)
{
int c=4;
*p=*b+c;
a=*p-c;
cout<<"(1)"<<a<<','<<*b<<','<<*p<<endl;
}
学习心得:这个程序第一次自己阅读的时候得出的结果和我运行后的结果不一样,经过单步调试和自己研究发现,*p指向的是b的值,*p的改变也就是b的改变,而a自始至终都没参与,形参的改变不影响实参,*p仅仅指向b的值,也只改变b值,在调用函数和主函数中,b都有改变,其中调用的时候*p=*b+c中*b的值还未改变,把原来的*b+c值赋值给*p后,*p改变,*b改变