美文网首页
(c基础)上课笔记 12.22

(c基础)上课笔记 12.22

作者: 霸王小 | 来源:发表于2016-12-23 09:24 被阅读10次
    • 栈:

    局部变量,程序运行期间的变量分配大部分是在栈空间分配,函数结束后,系统自动回收资源,空间比较小。

    • 堆:

    堆空间比较大,可以由程序员自由支配,只能手动申请和释放(malloc()申请的空间在堆上,free()释放空间,即申请的空间如果不用一定要释放,不然时间长会出现内存不足的问题)

    • 段错误

    ----指针:常量指针/NULL指针/野指针
    ----数组:数组越界访问,访问到非法取余或者修改了其他变量
    ----其他:内存不足,双释放,内存泄露

    • 栈和队列

    栈:先进先出
    压栈:push();
    出栈:pop();
    队列:先进先出

    #define LEN sizeof(STU)
    #undef LEN//取消宏定义

    #if 
    #elsif
    #else
    #endif
    
    • 文件

    1.普通文件:-
    2.目录文件:d
    3.链接文件:l
    4.管道文件:p
    5.设备文件:b
    6.字符文件:c

    文件信息:索引节点(index)
    文件操作:文件描述符(fd)linux系统:65535

    • 文件的定义

    一组相关数据的有序集合,即为文件。

    • 文件的操作

    打开:fopen(文件名,属性);
    关闭:fclose(文件指针);
    注:文件使用后一定需要关闭!
    文件指针:文件指针结构体:FILE(包含了文件的基本信息)#include <stdio.h>
    定义文件指针:FILE *指针变量名
    文件名:可以是已存在的,也可以是不存在的
    属性:
    +:可读写
    t:文本文件
    b:二进制文件
    r(读)
    w(写)
    a(追加)
    rt,wt,at,rb,wb,ab,rt+,wt+,at+,rb+,wb+,at+
    rt+/wt+:可读写
    rt/rb:只读
    wt/wb:只写,带w属性的,可以写文件,若文件已存在,则清除文件重新写文件;若不存在,则以给定文件名创建文件。
    r:带r属性的文件,必须存在!!!


    *fgetc()/fputc():字符读写
    fgets()/fputs():字符串读写
    fscanf()/fprintf():格式化读写
    fread()/fwrite():块读写
    注:重点掌握fscanf()/fprintf()或者fread()/fwrite()至少掌握一种
    在c89标准中,fread()/fwrite()有bug
    ----文件的结束标志EOF。

    rewind(文件指针):将文件指针指向文件头

    • fgetc/fputc

    fgetc(文件指针);读取一个字符
    fputc(字符,文件指针);输出一个字符

    • fgets/fputs

    fgets(字符数组/字符串常量/指针,size,fp);
    fputs(arr,fp)
    stdin:标准输入----》键盘
    stdout:标准输出----》终端
    stderr:错误输出----》终端

    • fscanf()/fprintf()

    fscanf(fp,"格式",参数列表);
    fprintf(fp,"格式",参数列表

    • fread()/fwrite()

    fread(address,sizeof,count,fp);
    fwrite(address,sizeof,count,fp);按块写入数据。
    address:地址
    count:读写的块数,一般情况下默认1;

    相关文章

      网友评论

          本文标题:(c基础)上课笔记 12.22

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