通過參數(shù)告訴函數(shù):參數(shù)指向的單元存放著你要的數(shù)據(jù)(供函數(shù)讀寫),處理完后也可以將結(jié)果放到那些單元(函數(shù)結(jié)束后供調(diào)用程序讀寫),這樣雙方都可以讀寫數(shù)據(jù)和結(jié)果,稱為雙向傳遞。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、橫峰ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的橫峰網(wǎng)站制作公司
所謂對應(yīng)其實是參數(shù)形式上的對應(yīng)。上面的兩個函數(shù)都要求傳遞一個指針類型。并且還是雙指針類型。c的編譯器執(zhí)行的是字面上的語義檢查,并不實際追究這個參數(shù)真是子函數(shù)需要的。而你傳遞參數(shù)的正確與否在運行時才能反映出來。尤其是指針,傳遞一個錯誤的指針基本會導致你的程序運行不成功,或者直接終止運行。
上面你的代碼中你給你的子函數(shù)傳遞一個int 類型的值,編譯器肯定會報錯,但是你用顯式類型轉(zhuǎn)換將int轉(zhuǎn)換成雙指針類型就騙過了編譯器。比如這樣:
int test=0x00400000;
shell_sort((char**)test,n);
編譯通過,運行必然出錯。
*x++和*x = *x + 1完全兩個意思,你這是誤會了。
提示一下,跟指針沒什么關(guān)系,和優(yōu)先級有關(guān)。