C語言指標傳遞記錄

2021-10-08 04:21:33 字數 800 閱讀 3780

指標本質上也是一種資料型別,同樣佔據記憶體空間,同樣具有位址

只要定義,必須分配空間

返回值也是拷貝後值傳遞

#include

#include

//fun()函式的引數為指標的指標,即指標變數本身的位址

void

fun(

int*

*p)int

main

(int argc,

char

*ar**)

//result: 1

形參可以理解為對實參做了乙份按位的拷貝,因此,由於本例中指標為空,若直接將p作為函式fun()的引數,則函式形參得到的是乙份p本身所占用的記憶體空間的值,而這個空間存的是空位址,則後續操作皆錯誤。如果要對空指標操作,需要傳遞該空指標本身的位址

#include

#include

//fun()函式的引數為指標p本身所占用的記憶體空間的值,此時p本身的記憶體空間存放了動態開闢的位址

void

fun(

int*p)

intmain

(int argc,

char

*ar**)

//result:1

c++中如被調函式的引數被宣告為引用,可以看作就是實參本身,不拷貝

C語言傳遞指標引數

簡單來說,指標是乙個儲存計算機記憶體位址的變數。所有的指標都儲存了記憶體位址。它們的型別只在取值時起作用。指標在c語言中是個十分重要的概念,可以搜尋相關資料進行深入學習,也可以參考 c語言指標簡介 簡單了解。c語言函式引數傳遞有兩種方式,一種是傳值呼叫,一種是傳址呼叫。那麼如果指標作為引數,應該怎麼...

c語言有感 指標傳遞之值傳遞vs位址傳遞

先上乙個讓我昨天晚上崩潰了一晚上的題 include includetypedef struct stu void f stu a d c a d a b 就是這個,蒼天啊,printf s,c,d,a name,a gender,a score int main void f a printf s...

c 值傳遞 指標傳遞 引用傳遞

值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作 引...