1、如果想真正改變實參的值,就必須交換指針指向的內存,而不是單純交換指針變量本身。形參是通過堆棧傳遞的,只有用類似 *x = 1;這樣的語句操作指針指向的內存,才能影響到實參,否則實參的值是不會改變的。
創(chuàng)新互聯建站是一家集網站建設,高臺企業(yè)網站建設,高臺品牌網站建設,網站定制,高臺網站建設報價,網絡營銷,網絡優(yōu)化,高臺網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。
2、creatBiTree傳的是一個指向指針的指針,換句話說,我傳進去一個指針,里面存的值是另一個指針的值。
3、main函數中:pstr指向str;p指向pstr;實參是傳遞的p,即指針數組pstr的首地址;sort函數中:p接收的是pstr的首地址,t是char *類型,其實你想用它來存儲指針數組的地址,交換中應用指針數組的地址,而非其存儲的地址。
1、s表示變量m本身,對*s的賦值就是對m賦值,所以*s=a[p]是正確的。請注意,函數fun中的s變量是一個地址,只對該地址進行重新賦值,并不對其所指向的變量m造成影響。所以s=&a[p]不改變main函數中m變量的值。
2、修改為 typedef struct LNode{ int data;struct LNode *next;}*LinkList; //結構體。
3、tail是一個指針,它指向的內容會因函數內的變化而發(fā)生變化,但它本身不會因函數的變化而發(fā)生變化。
1、一個函數(actionfun)作為另一個函數的參數(mainfun),實際上是在運行主函數mainfun的時候,得到的一些數值傳入到actionfun函數中,actionfun為主函數做一些設置也可以執(zhí)行一些其他的功能,但都要從主函數mainfun中得到參數。
2、你在子函數中要對你的主調用函數中變量進行操作時也可以用指針做參數,這樣子函數就可以不用return 如果不是用指針的話,就要再子函數的未尾加上一條return x;把這個數返回當返回值。
3、b u b b l e _ s o r t函數的最后一個參數是指向函數的指針,即是函數的入口地址。如果smaller=1的話,代入i n t (*cmp ) ( int , i n t ) ),本身就不對。
4、swap() 中是 int *p1 和int *p2這是因為這是swap的定義,既然是定義就要聲明參數的類型,這里聲明的是int*類型,那使用的時候就要傳遞int*類型的。主函數里的類型也是int*,對應上了,就可以了。