1.如下**:
char
*r,malloc()
;r =
malloc
(strlrn
(s)+
strlen
(t))
;strcpy
(r,s)
;strcat
(r,t)
;
錯誤原因:1.malloc函式分配記憶體是否成功未做判斷;2.給r分配記憶體後未釋放;3.malloc未分配足夠空間的記憶體。
修改後為:
char
*r,malloc()
;r =
malloc
(strlrn
(s)+
strlen
(t)+1)
;if(!r)
strcpy
(r,s)
;strcat
(r,t)
;free
(r);
2.**:
char
*p,*q;
p="xyz"
;
此時p的值是乙個指向由』x』,『y』,『z』和』\0』4個字元組成的陣列的起始元素的指標。
注:複製指標並不同時複製指標所指向的資料。
3.空指標並不是空字串,它表示不指向任何地方。
4.extern是c語言中的乙個關鍵字,它用來說明「此變數/函式是在別處定義的,要在此處引用」。可用來拓展作用域。
5.程式輸出有兩種方式:一是即時處理方式(較高的系統負擔),另一種是先暫存起來,然後再大塊寫入的方式。c語言通常用庫函式setbuf實現控制產生的輸出資料量。
C語言程式學習(三)筆記
實現變數的需要 1.有地方放輸入的數字 2.有辦法輸入數字 3.輸入的數字能參與計算。輸入行為是以行為單位進行的,按下回車鍵就是行的結束,按下回車鍵時,程式不會讀到任何東西 int price 0 變數的名字是price,型別是int,初始值是0 變數是乙個儲存資料的地方 變數定義一般形式 型別名稱...
C語言程式學習(四)筆記
乙個表示式是一系列運算子和運算元的組合,用來計算乙個值 運算子 operator 是指進行運算的動作,比如加法運算子 減法運算子 運算元 operand 是指參與運算的值,這個值可能是常數,也可能是變數,還可能是乙個方法的返回值。只有乙個運算元的運算子 優先順序比乘除高。int a 10 int b...
C語言程式學習(一)筆記
讓計算機做計算,就需要找出計算的步驟,然後用程式語言寫出來。計算機做的所有事情都叫計算。解釋 借助乙個程式,那個程式能試圖理解你的程式,然後按照你的要求執行。編譯 借助乙個程式,像翻譯,把你的程式翻譯成計算機真正能懂的語言 機器語言 然後機器語言寫的程式能直接被機器執行。翻譯的過程即編譯 語言無編譯...