1樓:與影
第一個呼叫把i/2的值傳遞給fun2的形參,而形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數,所以呼叫結束後i的值並未改變。
雖然fun2的返回值是處理後的i,但是由於並未將函式呼叫的結果賦給某一變數,所以此次函式呼叫對主函式內的變數無影響。第二個呼叫是把i=i/2的值傳遞給fun2的形參,即有把i/2的值賦給i這一運算,所以此時主函式中的i值為2.第三次呼叫過程與第一次相同,故i不變。
第四次呼叫fun1,在函式運算的過程中,執行了輸出語句故輸出運算後的結果:4.函式呼叫結束後,記憶體釋放,依然對主函式中的i值無影響。
2樓:匿名使用者
第一個fun2沒有對i改變,輸出5
第二個fun2i變為2,所以輸出2
第三個沒有對i改變,輸出2
fun1將i/2做引數傳入,沒有對i值改變所以輸出4 和2
3樓:
兩個函式傳遞進去的都是形參,並沒有改變main的i,
main裡面列印的輸出都是5,
func1的(i%i)已經是0了,所以func1列印的是4
4樓:
樓主你想問關於這個程式的什麼地方?
急求c語言高手解答三個題目!!!詳細說明最好!!!
5樓:匿名使用者
malloc在沒有足夠空間申請的時候會返回null,也就是0
因為&是取址運算子,注意,是運算。最後的q-p實際上等於q地址-p地址的偏移量,系統很智慧的給出了偏移5個int
realloc才可以在執行時改變空間的大小(陣列的大小)
6樓:與科技苦於
malloc給你的是地址,0地址就是null,while(1)一直執行,直到沒有記憶體可以申請,就返回null,此時p的值就為null,下面的語句向0地址寫入資料,程式就會終止
a[5]沒越界...就算越界了,比如a[6],雖然越界了,可不代表它沒有值,但他的值是不確定的對!
7樓:
1, malloc無空間時返回null,即0. 當指標指向0地址時,則是空指標,這裡是不允許直接寫入的。所以或奔潰退出
2. 陣列a的大小是6,因為5後面還有個逗號。 q指向第六個元素,p指向第1個元素,兩個整型指標相減為5.
3. 大小不是你想變,想變就能變。 一旦分配就不能再改變分配空間的大小了(除非釋放後重新分配)
8樓:匿名使用者
malloc返回連續的儲存單元的首地址 0地址不可用。
a陣列實際元素為 1 2 3 4 5 0 所以a[5]存在 地址差為5。
陣列一旦定義了,整個大小都不能變。 但是可以在程式執行時確定陣列長度(使用動態聯編定義動態陣列)
**急求c語言程式設計問題!!!!!!!!!!!!!
9樓:刀無極啊
#include
int main(void)
printf("\n");
}return 0;}
** 急求c語言程式設計問題!!!!!!!!!!!!!!!!!!!!
10樓:夜禮服假面
int main()}
11樓:匿名使用者
#include "stdio.h"
void main()}
急求一道簡單c語言題目解答過程!!!
12樓:匿名使用者
你可以這樣理解:
把a,b看成是逗號運算式 ,它的結果為b的值,而printf輸出的是這個式子的值,即b值
13樓:高金山
沒有什麼好解釋的
這個句子本來就是不正確的,就看編譯器是如何理解了
我用vc6,輸出的b)666
14樓:匿名使用者
printf函式是從右向左執行的,只輸出一個結果,所以只輸出b值,而不是按照先輸出a,再輸出b,這個順序執行的
15樓:
一樓fantasydb理解有誤。
printf()函式對輸出表中的各量求值的順序是自右向左進行的,但是輸出的順序還是從左向右。
這是楊健霑主編的《c語言程式設計》書上57頁的原話。
列印出來的結果應該是666而不是888.
c語言問題,小白求詳細解答,C語言問題 小白求解答
結果是a how are you 第一次開啟檔案,以 w 方式建立乙個新檔案,寫入how 第二次開啟檔案,以 a 方式追加資訊到檔案,寫入are you c語言問題 小白求解答 問 r,s,t 三個集的關係。t 由 r,s 得出。答,r,s,2 個集 之差 得 t.理由 把 r 裡與 s 相同 的 ...
c語言問題求大神解答,C語言問題,求大神解答 20
a 用結構體定義以下學生資訊,結構體名 student 學號 姓名和成績 包括3門課程的成績,可用一個陣列表示 struct student c語言問題,求大神解答! 奔安 include include include typedef unsigned int uint typedef struc...
c語言問題求解答,C語言問題,求幫忙解答!!
夢亦月兮 a1 a2對換 400,300 a3 a4對換 200,100 結果 400,300,200,100 注 sub1裡面就是乙個對換值的方法 岔路程式緣 結果是 100,400,100,200 說明 sub1只是交換了形參的值,但並沒有交換實參!但是,最值得注意的是sub1悄悄改變了a1這個...