C語言指標建立函式問題,C語言指標呼叫函式問題,急求解釋(本題是《c和指標》上的題目)

2022-07-20 14:55:06 字數 2602 閱讀 6017

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型別,這樣的引數放在可變引數部分的話,編譯器是會預設把它們的型別提公升為相應的 全 型別的 ...