其实我一直都不理解这个指针的意思,要通俗易懂.#includeint main(){\x05void swap(int ,int );\x05int a,b;\x05int *p1,*p2;\x05scanf("%d%d",&a,&b);\x05p1=&a;\x05p2=&b;\x05swap(p1,p2);\x05printf("%d %d\n",a,b);\x05return 0;}void swap(int

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 10:18:22
其实我一直都不理解这个指针的意思,要通俗易懂.#includeint main(){\x05void swap(int ,int );\x05int a,b;\x05int *p1,*p2;\x05scanf(

其实我一直都不理解这个指针的意思,要通俗易懂.#includeint main(){\x05void swap(int ,int );\x05int a,b;\x05int *p1,*p2;\x05scanf("%d%d",&a,&b);\x05p1=&a;\x05p2=&b;\x05swap(p1,p2);\x05printf("%d %d\n",a,b);\x05return 0;}void swap(int
其实我一直都不理解这个指针的意思,要通俗易懂.
#include
int main()
{
\x05void swap(int ,int );
\x05int a,b;
\x05int *p1,*p2;
\x05scanf("%d%d",&a,&b);
\x05p1=&a;
\x05p2=&b;
\x05swap(p1,p2);
\x05printf("%d %d\n",a,b);
\x05return 0;
}
void swap(int *x,int *y)
{
\x05int *temp;
\x05{
\x05\x05temp=*x;
\x05\x05*x=*y;
\x05\x05*y=temp;
\x05}
}

其实我一直都不理解这个指针的意思,要通俗易懂.#includeint main(){\x05void swap(int ,int );\x05int a,b;\x05int *p1,*p2;\x05scanf("%d%d",&a,&b);\x05p1=&a;\x05p2=&b;\x05swap(p1,p2);\x05printf("%d %d\n",a,b);\x05return 0;}void swap(int
在main里首先输入两个int到a和b
然后两个指针p1和p2分别指向a和b的地址.
传入swap后,两个指针x和y分别指向a和b
*x就是”x指向的那个int“
*y就是“y指向的那个int”.
于是在swap中,先把*x,也就是a的值复制一份到temp
然后把*y,也就是b的值复制到*x,也就是a那里.此时*x,也就是a,其原来的值被覆盖了(不过没关系,已经在temp备份了).
最后将temp的值(也就是原来a的值)赋值到*y,也就是b那里.
从而实现了a和b的交换.
你可以将指针看作是“门牌号码”,而变量看做是“房子”,变量的值看做“房子里的人”.这样会比较容易理解.