美文网首页
1222学习总结

1222学习总结

作者: 尘随风 | 来源:发表于2016-12-22 21:13 被阅读0次
    栈:
    局部变量,程序运行期间的变量分配大部分是在栈空间分配,
        函数结束后,系统自动回收资源,空间比较小,
    
    堆:
    堆空间比较大,可以由程序员自由支配,只能手动申请和释放
    malloc申请的空间在堆上!
    

    malloc()和free()要成对出现(即申请的堆空间要及时释放),
    防止出现堆空间不足的现象

    常见段错误:
    指针:
        常量指针/NULL/野指针
    数组:
        数组的越界访问,访问到非法区域或者修改了其它变量
    其它:
        内存不足,双释放,内存泄露
    
    栈和队列
    栈:  先进后出;
    队列: 先进先出;
    

    预编译
    #if 表达式
    //执行语句
    #elif 表达式
    //执行语句
    #else
    //执行语句
    #endif

    文件

    -:普通文件
    d:目录文件
    l:链接文件
    p:管道文件
    b:块设备文件
    c:字符文件
    f:堆栈文件
    
    (1)文件系统
        文件信息:索引结点(index)
        文件操作:文件描述符(fd)
                    fd最大值
        早期的Unix系统:   1024
        Linux系统:         65535
    (2)文件的定义
        一组相关数据的有序集合,称为文件
    (3)文件的打开和关闭
        打开:fopen(文件名,属性);
        关闭:fclose(文件指针); -------->#include<stdio.h>
        注:
            文件不关闭,不然会造成文件数据的丢失或混乱
        文件指针:
            文件指针结构体:FILE
            包含了文件的基本信息
      定义文件指针
        FILE *指针变量名;
    文件名:可以是已存在的,也可以是不存在的,示属性而定
        文件名可以加路径(绝对路径)
    属性:
        r(读)    w(写)    a(追加)
        +:可读写
        t:文本文件
        b:二进制文件
        rt,wt,at,rb,wb,ab,rt+,wt+,at+,rb+,wb+,at+
        rt+/wt+:可读写
        rt/rb:只读
        wt/wb:只写,带w属性的可以写文件,若文件已存在,则清楚文件,重新写文件
            若不存在,则以给定文件名创建文件
        r:带r属性的,文件必须存在
        
    (4)文件的操作
        fgetc()/fputc():字符读写函数
        fgets()/fputs():字符串读写函数
        fscanf()/fprintf():格式化读写函数
        fread()/fwrite():块读写函数
        注:
            重点掌握fscanf()/fprintf()或者fread()/fwrite()
            至少掌握一种
            在C89标准中,fread()/fwrite()由BUG!!!
    文件结束标志:EOF(end of file)
    
    (5)fgetc()/fputc()
        fgetc(文件指针); //从给定文件中读取一个字符
        fputc(ch,文件指针); //添加一个字符到指定文件中
    (6)fgets()/fpus()
        fgets(字符数组/字符串常量/指针,size,fp);
            从fp获得size-1个长度,在末尾加'\0'
            碰到EOF或者换行符结束
        fputs(arr,fp);
            将字符串写入到文件fp中
        stdin:标准输入    键盘
        stdout:标准输出   终端
        stderr:错误输出   终端
    (7)fascanf(fp,"格式",参数列表);   //读文件
        <--------------
       fprintf(fp,"格式",参数列表);   //写文件
        -------------->
       写入文件的时候是什么格式,读出来就是什么格式,不然会出错
    (8)fread()/fwrite() //块读写
        fread(address,size,count,fp);   //读
        <-------------
        fwrite(address,size,count,fp);  //写
        -------------->
        adress:地址
        size:大小---->sizeof()/或者具体数值
        count:读写的块数(一般情况下默认1)
        fp:文件指针

    相关文章

      网友评论

          本文标题:1222学习总结

          本文链接:https://www.haomeiwen.com/subject/oeuhvttx.html