在C語言中,函式傳參時怎樣利用指標傳遞陣列

2021-09-28 19:09:36 字數 828 閱讀 9200

函式傳參時利用指標傳遞陣列

比如函式需要乙個整型陣列:

void

display

(int a)

或者可以寫成:

void

display

(int

*a)

效果是一樣的。

使用的時候:

引用陣列中的第2個元素(即下標為1的元素)

a[1]

或者*(a+1)

基本上與陣列的正常使用沒有區別。

(但要注意 由於呼叫函式時只傳遞了指標(首位址) 所以程式不會做超界檢查)

補充你在子函式中進行的更改會直接影響到原陣列的內容

這也就意味著 只要你在處理函式中更改了資料 那麼任何函式(包括原函式)訪問這個陣列時 都使用的是你更改以後的數值。

//定義兩個陣列

unsigned

char revbuff[5]

=;unsigned

char newbuff[5]

;//定義乙個引數是指標型別的函式

void

function

(unsigned

char

*data)

}//主函式

intmain

(void

)

通過上面的程式可以實現將陣列revbuff裡面的元素全部賦值到新的陣列newbuff裡面,即:

newbuff[5] = ;

C語言中變參函式傳參的實現示例

目錄 近期在看一本書,叫做 嵌入式c語言自我修養 寫的內容對我幫助很大,是一本好書。在第6章 c編譯器擴充套件語法精講一節,這本書給出了一些變參函式的例子 1.變參函式初體驗 include void print num int count,int main void 上面的 很好理解 定義乙個變參...

c語言函式傳參

引入 不過對於函式的引數呼叫時常會出現問題。include int p int a int main void 這裡的自定義函式p,接收乙個int型別的引數,並定義為a。雖然自定義函式和主函式的變數名,都為a,但是這裡的a是兩個變數。雖然函式也將a返回了,但是主函式並沒有接收,忽略了p的返回值。所以...

C語言函式傳參問題(實參形參問題)

c語言中函式是必不可少的,所以傳參問題必須要懂,實際運用的時候也會很方便 函式的形參在函式被呼叫的時候才會被分配位址空間的,而且使用後會被收回的。這個是很簡單的,就是平常最常見的,呼叫函式時,形參被分配空間,同時將實參的數值賦值乙份給形參空間 如果是表示式的話,就計算後再給形參 然後形參的生死改變就...