1樓:
嚴格點說:你這個printf要看硬體軟體平臺來定,我的ubuntu+amd64+gcc4.4,理論上預設輸出應該是b[1]的int型的第三個位元組的地址的後四位(大致就這意思哈)
func的第一個引數是int型,在我的那個平臺上int為4位,地址指標為8位,所以擷取地址的後4位傳給func的第一個引數,main只有ab兩個變數,都在執行前開闢空間,為棧空間,所以ab順序排放,a佔四位,b每個元素佔四位,然後你自己算吧
2樓:青木主
func函式呼叫錯誤,引數型別不匹配,你是故意的嗎?這個東西編譯器應該會報錯的。即使成功執行結果也是一個無意義的值,因為變數a在記憶體中的地址是不確定的。
3樓:暢景彰
你這個程式每臺電腦執行出來的結果都不同,我的電腦執行出來結果是輸出1245002
首先func這個函式的功能是把這個函式的第一個引數值加入到陣列b的第0個元素中
然後你呼叫了func(&a,b);其中&a的意思就是取變數a儲存的記憶體地址,而實現的功能就是把變數a的記憶體地址加入陣列b的第0個元素中。但是因為在你定義int a的時候,計算機所分配給變數a的記憶體地址是不同的,所以你把變數a的記憶體地址加入陣列b中的話結果也會不同
4樓:星呈幻
func(&a,b)把一個地址當做引數傳給一個整形值,這個會導致編譯器報waring甚至是error(如果是c++編譯器的話,一定error)。執行結果不確定,因為每次執行程式&a的值都不同。
c語言的程式設計題目,請高手幫忙!謝謝
第一題 從鍵盤輸入任意兩個正整數x和y,程式設計求出兩數的最大公因子和最小公倍數 include int main void a 0 b 0 for i 2 i x y i if a 0 printf d 和 d 沒有公因子。最小公倍數是 d。n x,y,b else printf d 和 d 的最...
C語言求講解求求求謝謝,C語言 求解釋 謝謝
用指標運算元組理解有點麻煩,把指標表達換算成下標就簡單了 static int a 3 static int p 3 int i 0 while i 3 p i i p i 3 換算成下一行a i i a 0 i 3 printf d n p 0 換算成下一行printf d n a 0 0 pri...
c語言問題詳細解答一下謝謝C語言問題,詳細解答一下,謝謝
輸出結果是 cdeab 函式move char str,int n 的作用是把長度為n字串的尾字元,前移到串首。在main 函式中連續呼叫了n次,即把字串末尾的n個字元前移到串首。輸出結 果 cdeab 分析 只要你理解了move函式 的作用你就能明白整個過程 第一次迴圈呼叫move char st...