1樓:gta小雞
第乙個表示傳遞graphadjlist型別的引用g,第二個表示傳遞graphadjlist型別的指標g
另外這是c++,不是c。
c語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)
c語言指標作函式引數時的返回問題
2樓:匿名使用者
首先,弄懂函式引數都是靠值傳遞。指標也是。
進入函式後,函式建立幾個空間給形參,再把實引數值拷過來。退出函式時,把形參空間釋放,則影響不到實參。這就是值傳遞。
swap(int *p1,int *p2)函式首先建立兩個空間,是指標,再把實參複製過來,即改變p1,p2就分別指向了a,b.改變p1指向的值就是改變了a。然後交換*p1,*p2,ab就互換了。
函式退出,釋放p1,p2所佔的記憶體空間。但是a,b值互換了。swap函式沒有改變實參pointer_1,pointer_2的內容,只是借助指標實現了巧妙的乾坤大挪移。
學到c++後有個引用例外,那是後話了。
++++++++++++++++++++++華麗麗的分割線+++++++++++++++++++++
其實很簡單,不要硬記規律,要理解了。
第二個例子中swap(int x,int y)沒有改變原來實參a,b的值
第乙個例子中swap(int *p1,int *p2)也沒有改變原來兩個實參pointer_1,pointer_2的值,他們值分別是是a,b位址,但pointer_1,2指向的內容改變了,改的是以pointer_1,pointer_2的值為位址的記憶體單元的值。
3樓:匿名使用者
是通過位址傳遞的,每個變數,在記憶體中都有乙個位址,把這個位址傳給其他函式時,你在其他函式中,對這個變數進行修改,因為傳遞的是位址,所以你在修改這個變數的時候,你修改的其實就是原來的那個,不需要返回了
c語言中的指標問題,以及子函式的呼叫
4樓:一顆程式猿
第乙個是在根據指標, 交換指標所指的資料
第二個雖然寫的使用"指標"在實現, 實際上, 他是在獎p1 和p2兩個本地的變數值進行交換, 而並不是獎兩個位址所指向的記憶體單元進行交換
第二個函式你如果吧所有的int * 都改成int, 就能更清楚的看到他到底在幹嘛了
5樓:匿名使用者
你的理解沒有錯,但問題在於,作為函式的引數為指標引數,也就是說作為指標型別而言,引數是按值進行傳遞,不會因為函式內部對指標進行了交換而發生改變。因此,第乙個函式採用指標單元內的值進行交換,兩個指標的內部值在外部是能反映出來,第二個函式在外部是反映不出來的。
c語言這個f函式再指標
6樓:兄弟連教育北京總校
c語言中, 函式
名也稱為函式的指標,所以c語言中函式名就是一
個指標。
1,例如:
showmenu是乙個函式名,可以看到他的值是乙個位址。
&showmenu是對函式取位址,指向和showmenu同樣的位址。
可以看出,showmenu是佔用乙個位元組的,而作為指標&showmenu卻佔用四個位元組。
所以,函式名佔用空間的。
2,函式指標
指向函式的指標包含了函式的位址,可以通過它來呼叫函式。宣告格式如下:
型別說明符 (*函式名)(引數)
其實這裡不能稱為函式名,應該叫做指標的變數名。這個特殊的指標指向乙個返回整型值的函式。指標的宣告筆削和它指向函式的宣告保持一致。
指標名和指標運算子外面的括號改變了預設的運算子優先順序。如果沒有圓括號,就變成了乙個返回整型指標的函式的原型宣告。
例如:void (*fptr)();
把函式的位址賦值給函式指標,可以採用下面兩種形式:
取位址運算子&不是必需的,因為單單乙個函式識別符號就標號表示了它的位址,如果是函式呼叫,還必須包含乙個圓括號括起來的參數列。可以採用如下兩種方式來通過指標呼叫函式:
x=(*fptr)(); x=fptr();
第二種格式看上去和函式呼叫無異。但是有些程式設計師傾向於使用第一種格式,因為它明確指出是通過指標而非函式名來呼叫函式的。下面舉乙個例子:
void (*funcp)(); void filefunc(),editfunc();
main() void filefunc()
void editfunc()
程式輸出為:
filefunc editfunc
7樓:
28) f的呼叫並不會改變abc的值,所以還是原值4,3,5 選d
29)q為null,不能取內容,所以*q=0是錯誤的,選a
c語言指標的問題如圖為什麼自定義函式的時候是用的指標型別,在主函式中呼叫的時候就用位址?
8樓:匿名使用者
在江東,孫權令諸葛瑾入川討荊州未果,魯肅為孫權所迫,設鴻門宴邀關羽過江,欲逼還荊州。關羽單刀赴會,以其非凡的膽識,挫敗了這一謀劃。[1]
c語言函式和指標的問題,C語言函式和指標的問題
第乙個猜測 void operatestate u8 其中operatestate是個函式指標 等效於void operatestate u8 類似第三個 第二個確定 void getoperatestate void u8 其中getoperatestate void 為函式體void u8 為返...
C 指標的問題,C語言指標問題
這麼說吧,指標是以後資料結構的基礎,比如單鏈表,雙鏈表,二叉樹等等等等,全部都時指標做的,還有1720次對於現在的計算機來說,是個很小很小很小的數量級。指標學好了受益匪淺,並且也是程式設計今後必須的。指標的確是可以大大提高效率,但是要看你怎麼用,就和遞迴演算法一樣,另外,顯示位址是你語句的問題。比如...
C語言,不定引數的函式指標問題
很巧我現在正好也有實現這樣函式的需求,其實就是看了c語言可變引數函式的相關資料,你就差不多知道怎麼實現了。只不過其中有乙個很重要的大坑,只要邁過去就沒問題。我是試了半天才明白的 如果引數是char或float型別,這樣的引數放在可變引數部分的話,編譯器是會預設把它們的型別提公升為相應的 全 型別的 ...