2.請使用者輸入兩個數字到a、b
3.將aPtr指向a,bPtr指向b
4.列印aPtr、bPtr的記憶體位址
5.列印aPtr和bPtr指到的內容
6.撰寫modify函式,使用傳值的方式將aPtr、bPtr分別加10,並於主程式列印結果
7.撰寫swap函式,使用傳址的方式將a、b交換,並於主程式列印結果
8.撰寫swap2函式,使用傳參考方式將a、b交換,並於主程式列印結果
#include<stdio.h>
#include<stdlib.h>
void modifyA(int *cptr);
void modifyB(int *dptr);
void swapA(int *x,int *y);
void swapB(int &a,int &b);
int main(void)
{
int *aptr,*bptr,a,b;
aptr=&a;//aPtr指向a
bptr=&b;//bPtr指向b
printf("請輸入兩個整數 \n");
scanf("%d%d",&a,&b); //寫入a,b
printf("\n");
printf("aptr 的記憶體位置為 %d \nbptr 記憶體位置為 %d \n\n",aptr,bptr);
printf("aptr記憶體位置所指到的值為 %d \nbptr記憶體位置所指到的值為 %d \n\n",*aptr,*bptr);
modifyA(aptr);
printf("過函式後的*aptr = %d \n",*aptr);
modifyB(bptr);
printf("過函式後的*bptr = %d \n\n",*bptr);
swapA(&a,&b);
printf("a,b兩數交換 a=%d b=%d \n",a,b);
swapB(a,b);
printf("a,b兩數交換 a=%d b=%d \n",a,b);
system("pause");
return 0;
}
void modifyA(int *cptr) //傳值的方式將aPtr加10
{
*cptr=*cptr+10;
}
void modifyB(int *dptr)//傳值的方式將bPtr加10
{
*dptr=*dptr+10;
}
void swapA(int *x,int *y)//傳址的方式將a、b交換
{
int hold;
hold=*x;
*x=*y;
*y=hold;
return ;
}
void swapB(int &a,int &b)//傳參考方式將a、b交換
{
int hold;
hold=a;
a=b;
b=hold;
return;
}
沒有留言:
張貼留言