1樓:匿名使用者
倒敘輸出,!gninrom doog。
第一個for你肯定知道是怎麼回事了,就
是把p置為str1最後一位的地址,注意這裡是地址。然後關鍵來了,第二個for。注意條件是--p >= str1。
這個條件看上去有點奇怪,不過如果你對指標夠了解的話,還是比較簡單的。p現在是str1最後一位的地址,先--,得到倒數第二位的地址,即!的地址,比str1(字串首的地址)來得大,這樣,把!
賦給q,q++,然後p再--,得到倒數第三位的地址,即g的地址,比str1來得大,這樣把g(morning中的g)賦給q字串。如此往復,直到p減到了比str1還小的地址,停止複製,把\0賦給q是為了給字串一個結尾。這樣就完成了~
2樓:匿名使用者
執行結果:!gninrom doo
for (p=str1;*p!='\0';p++);這句找到str1結尾'\0'的位置
for(q=str2;--p>str1;q++)*q=*p;這句將str1中字元從後往前依次賦給str2,當p指向str1[2]即第二個o時,是最後一個符合--p>str1條件的,之後p指向str1[1]即第一個o,再賦值*q=*p,於是str2中是除str1中第一個字元g外其他字元的倒序
最後*q='\0';為str2中字串新增結束字元printf("%s",str2);輸出結果:!gninrom doo
C 程式執行時的記憶體空間如何分割槽
c 程式的內純格局通常分為4個區 1.資料區 data area 2.區 code area 3.棧區 stack area 4.堆區 即自由儲存區 heap area 全域性變數 靜態變數 常量存放在資料區,所有類成員函式和非成員函式 存放在 區,為執行函式而分配的區域性變數 函式引數 返回資料 ...
c程式執行時是不是會不停佔用新記憶體?至於記憶體
是不是正常的程式都存在佔用記憶體後就釋放記憶體?這要分情況 非動態分配的記憶體是程式在執行中一直佔用著的。動態分配的記憶體會隨著資料的變化和程式的執行在動態變化的,有時會需要很多,有時不需要,在不需要時,對已分配的記憶體是否進行釋放要看程式設計者對 的控制 一般情況下,良好的程式會對動態分配的記憶體...
程式題 1 閱讀 指出下列程式的功能及執行結果
樓上說的沒錯。程式有點錯誤,我改了一下。正確程式如下 10 dim d 14 20 for k 0 to 14 30 read d k 40 next k 50 a d 1 b d 1 60 for k 0 to 14 70 if d k a and d k b then 9080 if d k a...