本文目錄一覽:
- 1、為什麼不能通過虛實結合將形參的值傳送回主函數給實參,然後在主函數中使用形參的值。具體如下:
- 2、C語言 指針問題 新手求指點
- 3、c語言虛實結合誰能幫着通俗的解釋下。謝謝。
- 4、c語言虛實結合的問題
- 5、c語言調用函數時虛實結合的方法是什麼意思
為什麼不能通過虛實結合將形參的值傳送回主函數給實參,然後在主函數中使用形參的值。具體如下:
因為C語言中,參數的傳遞是數值傳遞方法,也就是說,在給函數傳遞參數時,使用的不是你傳遞的實參的內存空間,而是重新分配內存,將實參的數值複製到新內存中,被調用的函數就是使用新分配的內存,函數返回時,這些新內存就會被釋放,而源內存中的內容沒有改變。
要想通過調用函數改變實參的值,就需要使用指針或引用的技術。
C語言 指針問題 新手求指點
你看看這個例子吧,解釋很詳細的
【例10.3】題目同例10.2,即輸入的兩個整數按大小順序輸出。今用函數處理,而且用指針類型的數據作函數參數。
swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf(“%d,%d”,a,b);
pointer_1=a;pointer_2=b;
if(ab) swap(pointer_1,pointer_2);
printf(“\n%d,%d\n”,a,b);
}
對程序的說明:
swap是用戶定義的函數,它的作用是交換兩個變量(a和b)的值。swap函數的形參p1、p2是指針變量。程序運行時,先執行main函數,輸入a和b的值。然後將a和b的地址分別賦給指針變量pointer_1和pointer_2,使pointer_1指向a,pointer_2指向b。
接着執行if語句,由於a〈b,因此執行swap函數。注意實參pointer_1和pointer_2是指針變量,在函數調用時,將實參變量的值傳遞給形參變量。採取的依然是“值傳遞”方式。因此虛實結合後形參p1的值為a,p2的值為b。這時p1和pointer_1指向變量a,p2和pointer_2指向變量b。
接着執行執行swap函數的函數體使*p1和*p2的值互換,也就是使a和b的值互換。
函數調用結束後,p1和p2不復存在(已釋放)。
最後在main函數中輸出的a和b的值是已經過交換的值。
c語言虛實結合誰能幫着通俗的解釋下。謝謝。
這個主要是在調用函數過程體現出來
所謂的虛就是指,在調用某個函數後,傳進來的實參的值未變,只有調用時形參的值改變了
所謂的實就是指:在調用某個函數後,傳進來的實參的所指的內容發生改變了,不僅只有調用過得瞬間才發生變化。
虛實結合,就是函數的參數有多個,有的在調用後發生了改變,有的沒有。
c語言虛實結合的問題
這個很難說。嚴格來說不算是虛實結合,原理也很簡單,因為該char *p虛擬參數會改變實參的值,就這點它就不符合“虛實結合”,因為虛實結合中虛擬參數得到實際參數的值後,在函數調用期間有效,它可以參加各種運算(但虛實結合的定義並沒有明確界定它到底可否在調用期間改變實際參數的值)。對此,你可以認為它是虛實結合也可以認為它不是。
c語言調用函數時虛實結合的方法是什麼意思
意思就是
在調用某個函數後,傳進來的實參的值未變,只有調用時形參的值改變了,這就是虛
在調用某個函數後,傳進來的實參的所指的內容發生改變了,不僅只有調用過得瞬間才發生變化。
這就是實,
那麼結合就是,調用時函數有好幾個參數,有的改變了,有的沒變
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/187589.html