一道我不能理解的c語言題,希望大家幫我解答,謝謝

2021-03-08 18:04:27 字數 748 閱讀 6080

1樓:匿名使用者

選c因為呼叫fun函式相當於是把q這個指標的值傳遞出去,在fun函式中有另乙個s指標來接收這個值,但s接收完之後,直接就又被賦了乙個新的位址((int*)malloc(sizeof(int))此句又重新申請了乙個空間,並把該空間的位址值賦給了s);此時其實,fun裡面的操作與原q已沒什麼關係了,q除了在一開始把自己的值拷貝了乙份傳出去後就沒再變過,如此,在最後輸出時,它儲存的還是a的位址,所以是1

2樓:匿名使用者

c 1

首先說函式void fun(int*pl,int*p2,int*s)我們知道,函式傳引數有兩種方式,傳值和傳址。可能理解上比較難,我們說的簡單點,

以乙個交換函式為例int swap(int a, int b),不論a, b什麼值,在呼叫以後,都沒法交換,如果想達到交換a,b的目的,就要使用int swap(int * a, int * b),或者int swap(int &a, int &b)(如果想詳細了解,隨便搜搜傳值傳址就ok。)。

那麼,想要改變乙個指標的值呢(指標的值其實就是它指向的位址)?有了上面的參考,是不是需要用乙個指向指標的指標呢?叫做2級指標。

3樓:匿名使用者

c q最初指向變數a的位址,因此*q=1.

之後q作為引數呼叫func,會生成乙個q 的副本賦值給s,s的改變不會影響到q值

4樓:匿名使用者

cq指標的值沒變;所以q還是a的位址。

c語言一道題,C語言一道題

程式 如下 include int main printf n printf 總和為 d n sum return 0 include void main 教材上面應該有這個啊 include long fun int a,int n int j long s 0,t 0 for j 0 j n j...

一道C語言的題,一道c語言題

其實他是有不同的,就是?後面應該是表示式,而不是可執行語句,是有返回值的,他適用於給同乙個變數賦不同的值,如果你的那個程式是這樣的。x f x1 f x 0 x1 x2 那麼這個程式就是可以的,但是你這個?後面的 裡面卻是賦值語句,所以產生了錯誤!你這個是給不同的變數賦相同的值 你看我這麼說對嗎?你...

一道c語言程式設計題,一道C語言程式設計題。

include delete all n in array a void fun int a,int n,int odd,int even int main void int odd,even fun a,6,odd,even printf d d n odd,even return 0 void ...