1樓:匿名使用者
void swap(int *pi,int *pj) //函式定義:輸入兩個引數,均為指標型,函式功能:交換兩個指標指向的資料
//綜上,如果不定義臨時變數,pi原先指向的資料就被*pi=*pj;沖掉了
2樓:匿名使用者
這是乙個值交換函式,比如有以下程式
int a=1, b=2;
swap(&a,&b)
表示把a,b的值相交換
看swap函式本身,引數是兩個指標,表示兩個位址,像我例子裡面的
swap(int *pi,int *pj); 裡面的pi表示a的位址, pj表示b的位址
temp = *pi; 就是把pi位址的數存到temp,也就是把 temp =a
*pi = *pj; 就是讓pi位址的數等於pj位址的數,其實就是 a= b
*pj = temp; 然pj位址的數等於temp,因為temp等於a, 實際就是 b = temp = a
3樓:匿名使用者
交換pi和pj指向的記憶體空間中的資料啊,這麼簡單看不懂嗎?
4樓:
這個函式的功能是數值交換,每個指標指向乙個數,這個函式的功能就是把指標指向的數值換啦一下,例如*pi=1.pi指向的是1,*pj=2,pj指向2,此函式就是把pi指向2,pj指向1
關於c語言的指標問題指標的位址1問題
小p精神 我來給你寫個例子,你參考一下 int p,q,s int a 3 p a 將a的首位址賦值給p 那麼p指向的值應該是a 0 的值2 printf a 0 d p d n a 0 p q a 0 1 將a 0 的位址向右偏移一位就等於a 1 的位址 a 1 8那麼 q應該等於8 s q 1 ...
c指標陣列問題,C 中關於指標陣列的問題。
typedef 是 定義一種資料型別 就好像內建的資料型別如 int 它僅是乙個定義,不產生例項物件,即不分配任何記憶體,怎麼能給它賦值呢?對陣列賦初值的方法用for迴圈,在這裡還可用memset nod的記憶體分配在動態棧上,所以值不能確定,要初始化,必須使用顯式的方式。cdma980的回答是對的...
c語言關於為指標的指標分配記憶體的問題
首先 int 是一個二級指標,它是指標的指標,如果你要申請一個二維陣列,有下面兩個方法 int val int malloc sizeof int 10 int i for i 0 i 10 val i int malloc sizeof int 10 然後你可以這樣引用 val m n value...