#includestdio.h
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了新巴爾虎左免費(fèi)建站歡迎大家使用!
int func() {
return 10000;//這個(gè)函數(shù)返回了一個(gè)數(shù)字
}
void func1(int num) { printf("%d", num); }//這個(gè)函數(shù)接受一個(gè)數(shù)字并輸出
int main()
{
func1(func());//func1接受func返回的數(shù)字并輸出
return 0;
}
比如有一個(gè)函數(shù)bool test(int a, char b),那么在其他地方調(diào)用該函數(shù)時(shí)也要有2個(gè)類型相同的參數(shù),假設(shè)有int x和char y,那么直接test(x, y)就可以給函數(shù)傳值。
你的p、q的指針是使用的是x、y的地址,而x和y的地址是不可能改的,你覺的q和p的地址能改嗎?
而你在fun里的a和b是兩個(gè)局部變量,他只是內(nèi)存地址改了,而沒有改變x和y的地址和他所在內(nèi)存的內(nèi)容。
p函數(shù)就是個(gè)冒泡遞減排序功能。標(biāo)準(zhǔn)函數(shù)頭寫法應(yīng)該是void p(int a[])而不是void p(int a[5]),即使寫成void p(int a[5]),編譯器也是按void p(int a[])解釋而不按void p(int a[5])解釋,而且這里a[]的意思就是定義a是int *型指針。函數(shù)p中并沒有改變a,改變的是a指向的目標(biāo)a[0]~a[4]。所以不知你問的具體是啥意思……
if(k==0||i=x[k-1])
{
x[k]=i;//寫入數(shù)組
split(n-i,k+1);
}這里x[k]=6;所以n-i=0,傳入split中的形參n,這個(gè)時(shí)候n就變成0了
切 這個(gè)例子是為了讓你理解函數(shù)傳遞到底是什么。(c當(dāng)中的函數(shù)參數(shù)傳遞一直是值傳遞,別被指針迷惑了)
指針也只是一個(gè)變量而已。
因?yàn)槟銈鞯氖窃撝羔?,用的也是該指針。函?shù)傳遞參數(shù)是值傳遞。
也就是拷貝了一份pt的值進(jìn)去。
并未對(duì)pt本身做任何的操作。
所以pt還是那個(gè)pt。