黑马程序员--------------------------------我的疑问是值传递和地址传递都在别的函数进行的,值传递不可以改变数值号理解,地址传递为什么就改变了主函数的数值?
这个是地址传递,交换成功之后输出的数值会发生改变
#include <stdio.h> //无返回值,有参数 void change(int* a,int* b){ int temp=0; temp=*a; *a=*b; *b=temp; printf("交换后的结果是:%d %d\n",*a,*b); }
int main(int argc, const char * argv[]) { int a=4;//定义变量 int b=5;//定义变量 change(&a,&b);//调用函数 return 0; }
这个是值传递,交换之后输出的还是原来的值。
#include <stdio.h> //无返回值,有参数 void change(int a,int b){ int temp=0; temp=a; a=b; b=temp; printf("交换后的结果是:%d %d\n",a,b); }
int main(int argc, const char * argv[]) { int a=4;//定义变量 int b=5;//定义变量 printf("%d %d\n",a,b); return 0; }
|