1、C語(yǔ)言中的任何函數(shù)形參都是值傳遞。所謂引用傳遞,不過(guò)是指針的值傳遞而已。你的函數(shù)做的工作只是交換函數(shù)中的兩個(gè)臨時(shí)變量a和b的值,結(jié)果不會(huì)影響到外部的實(shí)參pa和pb。
目前創(chuàng)新互聯(lián)公司已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、仁布網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
2、首先,就是最基本的知識(shí),寫(xiě)頭文件、函數(shù)聲明、定義變量。下面還需要定義指針,需要定義兩個(gè)指針p1和p2,然后把a(bǔ)的地址賦值給p1,把b的地址賦值給p2。
3、這個(gè)是這樣的,因?yàn)橹羔樧兞恳话憔褪?2位的長(zhǎng)度,同樣int類型也是32位的長(zhǎng)度,p1里面的地址也是能放在p里面存儲(chǔ)的(char ,short類型就不行了)。
4、即可看出為什么回到主程序后,x,y的值為什么不交換。為了更形象,可以用圖表示它們的關(guān)系:可見(jiàn),交換的只是swap函數(shù)中的a,b值,對(duì)主函數(shù)中的a,b值沒(méi)有影響。 修改的方法,將swap的交換變成值的交換。
5、第一個(gè)函數(shù)的兩個(gè)指針是局部變量,函數(shù)完了就銷毀了,換不換都一樣,第二個(gè)是直接操作指針指向的地方(內(nèi)存單元),也就是直接操作變量。
6、vc里面,如果寫(xiě)c文件而不是cpp 函數(shù)里面所有的變量都要在開(kāi)頭聲明好。如果僅僅是定義char型,我試過(guò)了,沒(méi)問(wèn)題。
1、strcpy 函數(shù)功能是字符串復(fù)制,將第一個(gè)參數(shù)指定的字符串復(fù)制到第二個(gè)參數(shù)指定的位置 兩個(gè)參數(shù)都是字符串首地址。
2、利用指針作函數(shù)參數(shù),設(shè)計(jì)一函數(shù)實(shí)現(xiàn)將n個(gè)元素進(jìn)行排序 將這n個(gè)元素存在數(shù)組里,然后用指針類型參數(shù)接收即作為形參,然后采用排序算法對(duì)這些元素進(jìn)行排序即可 C語(yǔ)言,編寫(xiě)一函數(shù),其功能是求一個(gè)長(zhǎng)整數(shù)各位數(shù)字之和。
3、你希望通過(guò)交換str1和str2的值來(lái)實(shí)現(xiàn)字符串的賦值,是行不通的。
因?yàn)橹羔榓 b是指向指針p q的,所以寫(xiě)成a b的時(shí)候只是單純的指向p q它們所在的地方,而不是指向 i j的地方,也就相當(dāng)于指針p q換了個(gè)位置,使得a指向q也就指向j,b指向p也就指向i,但是i,j自己的值并沒(méi)有變化。
首先,就是最基本的知識(shí),寫(xiě)頭文件、函數(shù)聲明、定義變量。下面還需要定義指針,需要定義兩個(gè)指針p1和p2,然后把a(bǔ)的地址賦值給p1,把b的地址賦值給p2。
void swap(int *x,int *y) x,y是地址 temp = *x; //temp的值是x地址指向的值 這么理解就明白了。int a;int *a2;a = 5;a2=a2 = 6;運(yùn)行到這里a就是等于6,有沒(méi)有明白呢。
主函數(shù)里指針p指向變量a的地址,q指向變量b的地址,p=a,*q=b,這應(yīng)該沒(méi)問(wèn)題吧。change函數(shù)的形參分別是取a的地址和b的地址,然后用第三個(gè)變量t來(lái)實(shí)現(xiàn)值交換。再打印就是互換后的值。