1222學(xué)習(xí)總結(jié)

棧:
局部變量,程序運(yùn)行期間的變量分配大部分是在??臻g分配,
    函數(shù)結(jié)束后,系統(tǒng)自動回收資源,空間比較小,
堆:
堆空間比較大,可以由程序員自由支配,只能手動申請和釋放
malloc申請的空間在堆上!

malloc()和free()要成對出現(xiàn)(即申請的堆空間要及時釋放),
防止出現(xiàn)堆空間不足的現(xiàn)象

常見段錯誤:
指針:
    常量指針/NULL/野指針
數(shù)組:
    數(shù)組的越界訪問,訪問到非法區(qū)域或者修改了其它變量
其它:
    內(nèi)存不足,雙釋放,內(nèi)存泄露
棧和隊(duì)列
棧:  先進(jìn)后出;
隊(duì)列: 先進(jìn)先出;

預(yù)編譯
#if 表達(dá)式
//執(zhí)行語句
#elif 表達(dá)式
//執(zhí)行語句
#else
//執(zhí)行語句
#endif

文件

-:普通文件
d:目錄文件
l:鏈接文件
p:管道文件
b:塊設(shè)備文件
c:字符文件
f:堆棧文件

(1)文件系統(tǒng)
    文件信息:索引結(jié)點(diǎn)(index)
    文件操作:文件描述符(fd)
                fd最大值
    早期的Unix系統(tǒng):   1024
    Linux系統(tǒng):         65535
(2)文件的定義
    一組相關(guān)數(shù)據(jù)的有序集合,稱為文件
(3)文件的打開和關(guān)閉
    打開:fopen(文件名,屬性);
    關(guān)閉:fclose(文件指針); -------->#include<stdio.h>
    注:
        文件不關(guān)閉,不然會造成文件數(shù)據(jù)的丟失或混亂
    文件指針:
        文件指針結(jié)構(gòu)體:FILE
        包含了文件的基本信息
  定義文件指針
    FILE *指針變量名;
文件名:可以是已存在的,也可以是不存在的,示屬性而定
    文件名可以加路徑(絕對路徑)
屬性:
    r(讀)    w(寫)    a(追加)
    +:可讀寫
    t:文本文件
    b:二進(jìn)制文件
    rt,wt,at,rb,wb,ab,rt+,wt+,at+,rb+,wb+,at+
    rt+/wt+:可讀寫
    rt/rb:只讀
    wt/wb:只寫,帶w屬性的可以寫文件,若文件已存在,則清楚文件,重新寫文件
        若不存在,則以給定文件名創(chuàng)建文件
    r:帶r屬性的,文件必須存在
    
(4)文件的操作
    fgetc()/fputc():字符讀寫函數(shù)
    fgets()/fputs():字符串讀寫函數(shù)
    fscanf()/fprintf():格式化讀寫函數(shù)
    fread()/fwrite():塊讀寫函數(shù)
    注:
        重點(diǎn)掌握fscanf()/fprintf()或者fread()/fwrite()
        至少掌握一種
        在C89標(biāo)準(zhǔn)中,fread()/fwrite()由BUG!??!
文件結(jié)束標(biāo)志:EOF(end of file)

(5)fgetc()/fputc()
    fgetc(文件指針); //從給定文件中讀取一個字符
    fputc(ch,文件指針); //添加一個字符到指定文件中
(6)fgets()/fpus()
    fgets(字符數(shù)組/字符串常量/指針,size,fp);
        從fp獲得size-1個長度,在末尾加'\0'
        碰到EOF或者換行符結(jié)束
    fputs(arr,fp);
        將字符串寫入到文件fp中
    stdin:標(biāo)準(zhǔn)輸入    鍵盤
    stdout:標(biāo)準(zhǔn)輸出   終端
    stderr:錯誤輸出   終端
(7)fascanf(fp,"格式",參數(shù)列表);   //讀文件
    <--------------
   fprintf(fp,"格式",參數(shù)列表);   //寫文件
    -------------->
   寫入文件的時候是什么格式,讀出來就是什么格式,不然會出錯
(8)fread()/fwrite() //塊讀寫
    fread(address,size,count,fp);   //讀
    <-------------
    fwrite(address,size,count,fp);  //寫
    -------------->
    adress:地址
    size:大小---->sizeof()/或者具體數(shù)值
    count:讀寫的塊數(shù)(一般情況下默認(rèn)1)
    fp:文件指針
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容