c语言知识点

来源:互联网 发布:阿里云被流量攻击 编辑:程序博客网 时间:2024/05/21 14:54
  1. 数组名是地址常量;sizeof包括最后面的'\0',strlen不包括;
  2. 用字符串给数组赋值时,会自动在末尾添加上'\0'。
  3. printf是从右边向左边打印输出的
  4. 定义数组时,会初始化吗?(应该不会自动初始化)字符数组后面自动补上'\0'。'\0'对应的十进制是0.
  5. union,成员共用存储空间。
  6. 字节对齐的细节和编译器实现相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除; 2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。
  7. 字符串指针可以指向不同的字符串,但是不能通过它来修改字符串的值;而字符串数组不一样,可以修改字符串的值,因为发生了拷贝;
  8. 初始化值的个数可少于数组元素个数.当初始化值的个数少于数组元素个数时,前面的按序初始化相应值, 后面的初始化为0(全局或静态数组)或为不确定值(局部数组).
  9. static是比动态全局变量更小的作用域,可以用来降低模块的耦合(该变量只由单个函数或者单个文件访问);函数的静态变量,导致了该函数不可重入的,尽量不要用;可以用静态变量保存一个函数局部变量的指针;静态变量在未初始化时,自动赋值为0;static函数主要是只能在本文件内使用
  10. 全局变量是在函数的外部定义的,作用域为函数定义开始,到本文件结束;如果在其他文件要使用,在使用前声明加上extern;static函数是用哪个存储区?
  11. w, r, a, b, +, t是6种文件操作符,可以组合;char fgetc(File *pFile); fputc(字符,文件); fgets(str, n, fp); fputs(str, fp); fread(buffer, size, count, fp);  fwrite(buffer,size,count,fp);
  12. fscanf(文件指针,格式字符串,输入表列); fprintf(文件指针,格式字符串,输出表列);fseek(文件指针,位移量,起始点);
  13. ftell函数是用来获取文件的当前读写位置; 函数原型: long ftell(FILE *fp);得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数;

 

原创粉丝点击