1樓:
這是形參與實參的區別 。。。
一開始是 fun(a,b,s) 呼叫的話,形參的指標s跟實際引數的指標s是指向同一塊記憶體。
但是在fun函式裡。。又重新calloc了一塊記憶體給s指向 。所以他們指向的地址就不一樣。
也就是形參跟實參沒有關係了。
你可以把那一句calloc去掉,答案就是c了。
2樓:匿名使用者
答案是d
分析:1、函式fun中的s是在函式中的一個形參,開始把a的值傳遞給它,但是函式裡面緊接著讓s指向了新分配的地址,所以給這個空間賦值不會改變原來s指向的a中元素的值,且該變數s在函式返回時已被釋放掉了,即它與main中的s無關;
2、main中的s指向的是a[0],儘管進行了函式呼叫,但是根據1中的分析知a[0]沒被修改,所以輸出*s也就是輸出a[0],結果為1.10
3樓:匿名使用者
在fun()函式中,s的值才是21.10的,因為fun()函式重新申請了空間,s指標指向地址裡的資料改變了。但在mian()函式中,s指向的依舊是a陣列的首地址,*s=a[0]=1.1。
4樓:匿名使用者
這個其實我們都被那個子函式騙了,其實它根本沒做什麼。子函式一開始就給指標s開闢了新空間,所以子函式的s跟主函式的s已經沒任何關係了。這程式相當於把a[0]格式化輸出了。。。
C語言程式分析題如圖求解,C語言程式分析題如圖求解
哈哈哈,我居然忘了。原以為我會 i先加後用,i 先用後加,所以 z 9,w 6,x 4,y 4 一臉蒙逼,這都沒有輸入 z 2 3 4 9 x 4w 2 2 4y 5 大一c語言程式題求解 如圖 a正確,p name和temp.name等價b錯誤,p等同於temp,因此使用 p name是錯誤的,必...
C語言選擇題求解5 6 7題
第五題答案是d,因為dt語句。第六題答案是a,因為b中的char是字元的定義符號,c中是在定義字元陣列,d中含有雙引號是定義字串才會用到的。第七題答案是a。2就是取兩位的意思,中間用逗號隔開。d b c 第一個是有判斷語句,裡面有兩個賦值語句 第二個陣列的賦值方式d是錯誤的,那是給字元陣列賦值不是給...
c語言函式問題第10題,C語言問題求解第10題
sub1函式內會交換形參a b的值,但由於a b是形參且並非傳地址,故fun函式執行完後,對實參不會有影響。sub1 a,b 執行完後,a b仍然會維持原來的值不變,即a的值仍然是 a b的值仍然是 b putchar a putchar b 為輸出字元型變數a b的值,即輸出 ab 綜上所述,第1...