#include <stdio.h>
#include <malloc.h>
/**
* 1.定義一個值傳遞函式
* @param a 變數值
* @param b 變數值
*/
void swap_value(int a , int b){
int temp;
temp =a;
a=b;
b=temp;
/*沒有返回*/
return;
}
/**
* 2.定義一個地址傳遞函式
* //例如 int p=6
* @param a 為地址值 = &p
* @param b 為地址值 = &p
*/
void swap_address(int* a , int* b){
//定義一個的變數 :存放地址位置上的值(不是地址)
int temp;
/*把 a地址變數上的值,給temp*/
temp =*a;
/*把 b地址變數上的值,給a地址變數上的值 */
*a=*b;
/*把 temp的值,給b地址變數上的值 */
*b=temp;
/*沒有返回*/
return;
}
int main()
{
int x=5,y=3;
/*1.使用值傳遞 :不會改變原來的值*/
swap_value(x,y);
printf("使用值傳遞的結果為:x=%d,y=%d\n",x,y);
/*2.使用地址傳遞 :改變 傳入地址值 位置上 原來的值*/
swap_address(&x,&y);
printf("使用使用地址傳遞的結果為:x=%d,y=%d",x,y);
return 0;
}
使用值傳遞的結果為:x=5,y=3
使用使用地址傳遞的結果為:x=3,y=5
程序已結束,退出程式碼為 0