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