1樓:匿名使用者
程式輸出323
123我們分析fun函式.
main函式裡呼叫fun函式,實際引數傳的是str字串的首地址,那麼因此fun函式的s字元指標也是指向的str的首地址,換言之就是指向的字元'1'.函式內部開始處有個if語句,如果條件為真就執行,否則就退出.我們知道任何一個字元(除'\0')的邏輯值都為真,因此進入到fun(++s),而++s表示的是先自增,也就是讓s指向了下一個字元的地址,於是就將新的s傳入fun,再次呼叫fun函式,這裡就反覆的遞迴呼叫,直到++s指向的是字串的最後一個元素('\0').
當*s的值為假(*s='\0')時,就退出了當層函式,返回到上一層的函式,也就是執行printf語句,這時的s還是指向的'\0',所以需要自減後再輸出,於是第一次輸出就是從'3'這個字元輸出字串.執行完後,這一層的函式結束,再次返回上一層,上一層又到了printf函式,而此時s指向的是'3',再對s自減後指向'2',輸出字串為"23"...結束後返回到第一層,指向'2',自減後輸出"123".
然後程式結束
2樓:匿名使用者
321 指標移到末尾,然後反向輸出
1。遞迴呼叫,讓指標後移,直到末尾
2.s-- 就是指標倒著走 輸出 321
c語言程式選擇題,C語言程式選擇題。
include main 所以答案是d 陽光上的橋 你選d能得到老師的分。但是實際你的 執行不會是這樣,全部都會出錯,因為 你在 和c之間多了空格。 煞 a錯 不允許有連等於,其實那個 是賦值號,把它右邊的值賦給左邊 b錯 因為已知y 3,所以y 1這個布林判斷即為false,把布林值賦給整型 題目...
C語言程式題!高分求答案,C語言程式題!高分求答案!
void strcpy char a,n,char b,m 函式名 for i 0 i a head 把新開闢的陣列首地址賦給原陣列變數名a delete a delete b 就算原陣列的空間不夠,也可以用這個方法的.無須考慮要合併陣列的長度 補充一下 回答2雖然可以不用管目標的記憶體長度,但是會...
c語言程式這道題怎麼做,C語言程式,這道題怎麼做
ffe2是陣列a的首地址,16進位制數 一個整數佔四個位元組 p 9 ffe2 9 4 ffe2 24 h 10016 h p 9 1 9 10 a h p 9 0 p 9 2 9 11 b h x輸出的是十字的十六進位制的值。p是一個地址,指向陣列a的首地址 第一個printf輸出陣列a的地址。p...