1、在 huan(int *p1,int *p2)這個函數(shù)中,交換的只是兩個指針的指向,但是函數(shù)的結束、返回,這兩個指針本身就消失了(它們的值并不會傳回到main()函數(shù)中)所以,最后的結果沒有交換。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供高密網(wǎng)站建設、高密做網(wǎng)站、高密網(wǎng)站設計、高密網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、高密企業(yè)網(wǎng)站模板建站服務,十余年高密做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
2、利用指針作函數(shù)參數(shù),設計一函數(shù)實現(xiàn)將n個元素進行排序 將這n個元素存在數(shù)組里,然后用指針類型參數(shù)接收即作為形參,然后采用排序算法對這些元素進行排序即可 C語言,編寫一函數(shù),其功能是求一個長整數(shù)各位數(shù)字之和。
3、change函數(shù)的形參分別是取a的地址和b的地址,然后用第三個變量t來實現(xiàn)值交換。再打印就是互換后的值。
利用指針作函數(shù)參數(shù),設計一函數(shù)實現(xiàn)將n個元素進行排序 將這n個元素存在數(shù)組里,然后用指針類型參數(shù)接收即作為形參,然后采用排序算法對這些元素進行排序即可 C語言,編寫一函數(shù),其功能是求一個長整數(shù)各位數(shù)字之和。
首先,就是最基本的知識,寫頭文件、函數(shù)聲明、定義變量。下面還需要定義指針,需要定義兩個指針p1和p2,然后把a的地址賦值給p1,把b的地址賦值給p2。
在C語言中,通過函數(shù)參數(shù)傳遞,進行兩個數(shù)的交換,必須采用傳遞指針的方式,同時,在函數(shù)中,一定要對兩個指針中的數(shù)據(jù)內容進行交換才能達到交換實參地址中數(shù)據(jù)的目的。
主函數(shù)里指針p指向變量a的地址,q指向變量b的地址,p=a,*q=b,這應該沒問題吧。change函數(shù)的形參分別是取a的地址和b的地址,然后用第三個變量t來實現(xiàn)值交換。再打印就是互換后的值。
第一種當然沒問題,問題是你寫錯一個地方,{int m,n,t;改成 {int m,n,*t;t要作為指針的交換變量,那t本身也得定義為指針類型。
1、void swap(int *x,int *y) x,y是地址 temp = *x; //temp的值是x地址指向的值 這么理解就明白了。int a;int *a2;a = 5;a2=a2 = 6;運行到這里a就是等于6,有沒有明白呢。
2、說明:^=只是利用異或來實現(xiàn)2個地址的數(shù)值交換,和你定義一個變量做交換是一個效果。
3、那么void swap(int *a,int *b)函數(shù)對應的swap(p,q);的值是5,3。但是因為:只是p和q交換了位置,自己本身,但是沒有牽扯到它們所指的地址,也就是p還是指i,q還是指j。