当我把程序改成这样了也无法完全执行
书上原话是:不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指变量的值。
是不是我哪里理解错了?
希望大佬帮帮我这个萌新!
感谢感谢!
当我把程序改成这样了也无法完全执行
书上原话是:不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指变量的值。
是不是我哪里理解错了?
希望大佬帮帮我这个萌新!
感谢感谢!
指针变量的值 存放的是地址,就也是a、b的地址,这个是没有改变的;
改变实参指针变量所指变量的值,也就是改变a、b的值,一个是地址,一个是值。
#include <stdio.h>
int main()
{
void swap(int *p1,int *p2);
int a=5,b=9;
int *point1;
int *point2;
point1 = &a;
point2 = &b;
printf("原a、b变量值:%d,%d\n",a,b);
printf("原指针变量值:%d,%d\n",point1,point2);
if(a>0&&b>0){
swap(point1,point2);
}
printf("交换后a、b变量值:%d,%d\n",a,b);
printf("交换后指针变量值:%d,%d\n",point1,point2);
return 0;
}
void swap(int *p1,int *p2)
{
*p1=-1;
*p2=-2;
}