
函式fun()中不是已經通過指標s把s所指的值改變了嗎?為什么主函式中又沒改變呢?
uj5u.com熱心網友回復:
指標當引數只能修改它指向的記憶體地址里面的東西,而不能修改指標的指向。uj5u.com熱心網友回復:
在fun()函式體內,*s 所指向的是 s = (double *)calloc(1,sizeof(double))所生成的空間,并沒按我們所想的那樣,指向a[]陣列的空間。uj5u.com熱心網友回復:
main函式的s和fun函式里的s是兩個獨立的變數。所以main里的s在經過fun函式之后是沒有變化的,還是指向a的。因為實參s把a的地址傳給fun函式的形參s,然后形參沒有對a做任何操作;只是形參s又指向了calloc申請的空間,并且把a,b資料內容相加給了s(形參),那么這個s和main函式里的s什么關系呢?calloc申請的空間需要手動釋放~
如果fun第三引數傳遞的是double **s,實參是&s,那么main里的s指向的calloc申請的空間,*s是相加之和
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268742.html
標籤:C語言
上一篇:大四實習生學習服務器開發
