程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 指針變量做參數-這兩個調用函數為什麼所得結果會不一樣

指針變量做參數-這兩個調用函數為什麼所得結果會不一樣

編輯:編程綜合問答
這兩個調用函數為什麼所得結果會不一樣

·······swap(ponter1,pointer2);·····
void swap(int *p1,int*p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}

void swap(int *p1,int *p2)
{
int *p;
p=p1;
p1=p2;
p2=p;
}
兩個都是函數定義(調用函數),為什麼第一個是對的,而第二個是錯的。

最佳回答:


第二個方法,交換的結果是不是和原來一樣呢,其實是因為你沒有理解指針~第二個方法換來換去都沒有真正的交換數據,只是把指針所指向的位置換了,即p1和p2分別指向了對方的位置,而在內存中,原本的數據順序並沒有交換

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved