函數(shù)change的功能是 求大神幫忙解釋一下在這里C語言中change的作用和怎么用?
求大神幫忙解釋一下在這里C語言中change的作用和怎么用?更改(a,5)第一個參數(shù)指向數(shù)組a,第二個參數(shù)是數(shù)組的長度。然后將*(bi)轉(zhuǎn)換為b[i],b指向a,因此*(bi)=a[i]*(b1)=*
求大神幫忙解釋一下在這里C語言中change的作用和怎么用?
更改(a,5)第一個參數(shù)指向數(shù)組a,第二個參數(shù)是數(shù)組的長度。然后將*(bi)轉(zhuǎn)換為b[i],b指向a,因此*(bi)=a[i]*(b1)=*(bi)5相當于a[1]=a[i]5。我不知道是不是錯了。如果它是*(bi)=*(bi)5,那么數(shù)組A的每個元素加上5。此值按值傳遞,不會更改值。與此類似,當調(diào)用函數(shù)時,C=e,e=D,D=C在change中執(zhí)行(int e=x,int D=y),它被e D替換。您可以在change中正確打印,而不是在x和y中
change(a,5)第一個參數(shù)指向數(shù)組a,第二個參數(shù)是數(shù)組的長度。然后*(bi)將形式轉(zhuǎn)換為b[i],b指向a,因此*(bi)=a[i]*(b1)=*(bi)5相當于a[1]=a[i]5。我不知道是不是錯了。如果它是*(bi)=*(bi)5,那就是數(shù)組的每個元素加上5
C語言:定義一個CHANGE函數(shù),怎么printf后還是跟實參一樣???
看了下面兄弟的回復,我們只能說一半的答案是正確的。
真正的原因是abi(應用程序二進制接口)。
ABI定義了與系統(tǒng)交互的細節(jié),如數(shù)據(jù)類型、大小和對齊方式;調(diào)用約定(控制函數(shù)的參數(shù)傳遞方向、可變長度處理、堆棧清理體以及如何接受返回值等);系統(tǒng)調(diào)用的編碼以及應用程序如何對操作系統(tǒng)進行系統(tǒng)調(diào)用系統(tǒng);以及采用完整ABI操作系統(tǒng)基本格式、程序庫等的第二代對象文件。完整的ABI,如英特爾二進制兼容標準(IBCs),允許支持它的操作系統(tǒng)上的程序在支持此ABI的其他操作系統(tǒng)上運行,而無需修改。
其他ABI標準化細節(jié)包括C名稱修改和同一平臺上編譯器之間的調(diào)用約定,但不包括跨平臺兼容性。
至于下面兄弟提到的eax save返回值,這只是X86的ABI規(guī)范。在其他CPU架構平臺(如PowerPC)中,實現(xiàn)是不同的!--在PowerPC中,返回值存儲在R3寄存器中