C語言傳遞指標引數

2022-09-15 12:57:11 字數 895 閱讀 9630

簡單來說,指標是乙個儲存計算機記憶體位址的變數。所有的指標都儲存了記憶體位址。它們的型別只在取值時起作用。指標在c語言中是個十分重要的概念,可以搜尋相關資料進行深入學習,也可以參考 c語言指標簡介 簡單了解。

c語言函式引數傳遞有兩種方式,一種是傳值呼叫,一種是傳址呼叫。那麼如果指標作為引數,應該怎麼傳遞指標?可以參見下面的例子。

/* 編譯器版本:

*/#include /* 錯誤版本,指標p是指標str的乙個拷貝,所以這種方法僅初始化指標p,而對指標str無影響 */

void allocate_wrong(char *p,int size)

void allocate(char **p, int size)

int main(void)

/*輸出結果:

1bf88c

01bf7b4

1bf88c

hello world!

*/

從中我們可以看出,c語言中傳遞指標變數時,需要用到二級指標。示例中char **p = &str;表明p是乙個二級指標,*p存放的是指標str的位址。因此對*p進行操作,也就是對str進行操作。

修改普通型別變數(如intchar等),函式引數需要用一級指標;

修改指標變數,函式引數需要用二級指標;

以上都是c語言裡面的操作,當然c++可以用引用(例如int *&p = str;)。

c語言中的二級指標(雙指標)

c語言陣列引數與指標引數

c語言傳遞引數

1.標準資料型別,int char 等。如果c傳遞的是單個資料型別,會在被調函式中重新建立乙個物件。所以,無論我們在被調函式中怎麼修改,主調函式的值不會發生變化。2.陣列。當我們傳遞的引數是乙個陣列時,c傳遞的是陣列首元素的位址。所以當我們在被調函式中做修改了,主調函式的值也會變化。3.自定義資料型...

關於C語言傳遞引數的問題

要求 編寫乙個函式,將rgb資料顯示到tft彩屏上,rgb資料為565格式,平台 stm32f030 lcd st7735s 編譯平台 mdk5.14 對於這個一般的來說很多人會這麼寫 void lcd draw rgb u16 x,u16 y,u16 x size,u16 y size,u16 p...

Go語言傳遞變長引數

如果函式的最後乙個引數是採用.type的形式,那麼這個函式就可以處理乙個變長的引數,這個長度可以為 0,這樣的函式稱為變參函式。func myfunc a,b,arg int 這個函式接受乙個類似某個型別的 slice 的引數 詳見第 7 章 該引數可以通過第 5.4.4 節中提到的 for 迴圈結...