图片1.png
  • 优点:程序时空开销小,具有汇编语言的指针、位、地址、寄存器概念,底层操作能力,适用编系统软件,结构化,简介灵活,易移植,运行效率高(比汇编低15%);缺:不能自动检查越界;
  • a=b++先赋值再自增;a=++b先自增再赋值;
  • (float)6/4是1.500000;(float)(6/4)是1.000000;
  • 源文件.c;目标程序.obj;执行程序.exe;都是二进制文件;
  • 源程序以ASCII代码形式存于文本文件;
  • c程序算法可无输入必须要有输出;
  • 三种基本结构可以完成任何复杂的任务;
  • 大括号内是复合语句;
  • C语言基本组成单位:语句;
  • 0%2==0;1%2==1;-10%2==0;-10%-2==0;10%-2==0;-11%2==-1;11%-2==1;-11%-2==-1;1.0%2和1%0.2错误
  • %03d至少三位输出,不够填0;%.3f保留3位小数不够填0;
  • switch内case无break后面将一直执行;
  • &&优先级高于||;
  • 100>90>2是0;相当于1>2;
  • 函数不定义返回值类型,默认int;
  • 函数内static只在第一次调用赋值,以后再调用不在赋值,函数结束后内存不被回收;
  • 实参可以常量、变量、表达式,形参只能变量;
  • double类型只能lf,不然可能出错;
  • printf("%d",(1,2,3));输出3;
  • 计算机处理、存储、计算所有信息都是二进制,所有位运算要比正常快点;
  • 1字节=8比特;
  • 浮点小数点后默认6位;
  • %ddd八进制,%xhh十六进制;%o八进制,%x十六进制;
  • ‘0’==0字符串自动在结尾加,strlen只读到第一个‘0’;' '==32;
  • a=a+(a=10); 相当于a==20;
  • 数组名常量,存放数组内存空间首地址,不可赋值;
  • char a[]="abc",sizeof为4;char a[3]="abc"报错;
  • 地址不是整数,需要强制(int)后是整数,不可直接给指针赋值整数;
  • ++p和++p不同;
  • 结构体后要用分号,因为是语句;
  • .成员运算符;->指向运算符;
  • 结构体可以直接a==b赋值;
  • 以数组为参数会改值,以结构体为参数不改值;
  • 宏是替换不是函数,宏在编译预处理时完成,函数在编译中运行;
  • 编译预处理:条件编译、宏定义、文件包含;
  • (a+1)==a0;(a+1)==a1;a+1==a0+1;
  • 二维数组a==&a[0],a[0]==&a0,a==&&a0;
  • *a==a[0]==a0;*a=&a[0];
  • %s和%c一起输入要getchar();
  • 单链表末尾要有NULL;
  • fp指向内存缓冲区(内存单元);不能fp++;是顺序性的;
  • FILE类型结构单元16B,缓冲区单元512B,写满进入磁盘扇区;
  • fclose(fp)==0正常关闭;feof(fp)==1文件结束;EOF==-1;
  • strcat认到0开始逐字符覆盖;
  • fseek(fp,-20L,2)距离文件尾部20字节处,0首1现2尾;
  • w+、w完全覆盖,文本清空后重写;r+逐字覆盖;rewind后w,r+,w+逐字覆盖;a,a+永远追加;
  • char a[4];a[2]='3';strlen(a)==0;
  • 文件由数据流组成;
  • a=b=4=8错误;b+3=9错误;
  • 函数内部不可以定义函数,只能声明,调用;
    -a=b=c=8;a=(b+=c,++c);a,b,c为9169;
  • int (a)[10],b[10];a是一个指针,要用只能指向二维数组,b是一维指针型数组,b[0]是一个数组;
  • sizeof("tn0")==4;
  • sizeof("")==1,sizeof(" ")==2;