すいません。ポインタについて質問なのですが、下記のような関数があるんですが
Swap関数で数値が入れ替わるのはポインタでiDat1とiDat2のアドレスが引数で指し示されているから
戻り値(代入?)みたいになってiDat1・2に入れ替えられたものが代入されて5と8が入れ替わると言う風に理解しました。
それでわからないのがSwap2関数ですが、これはiDat1とiDat2が引数に入れられても
Swap2に代入しただけでポインタで指し示されていないからSwap2関数の中で数字の入れ替えをしても、
iDat1、iDat2へ反映されておらず数字の入れ替えは起こらないと
理解すればいいのでしょうか。自分は戻り値という表現は正しくないと思います。
Swap1とSwap2の関数の違いが先生に聞いてもよくわからないんで
どなたか、この二つの関数で何が起こっているのか、わかりやすいアドバイスお願いします。

int iDat1=5,iDat2=8;

void Swap(int *p1,int *p2)
{
int iTemp;

iTemp=*p1;
*p1=*p2;
*p2=iTemp;
}

void Swap2(int a,int b)
{
int iTemp;

iTemp=a;
a=b;
b=iTemp;
}