C语言笔试题总结

运算符优先级

转载:C语言运算符优先级(超详细)_yuliying的博客-CSDN博客

a+++b

  1. (a++) + b

例题:

a=0 b=1 c=2 d=3

a+++b+c+++d++

=(a++)+b+(c++)+(d++) ----->>这一步是因为运算符优先级

=0+1+2+3-------->>这一步是因为前后自增先返回地址再自增

const和指针

转载:C语言 const和指针_guanjianhe的博客-CSDN博客

常量指针

  1. 指针指向的内容是常量
  2. 不能通过这个指针改变变量的值
const int *p;
int const *p;

指针常量

  1. 指针本身是个常量,不能再指向其他地址
  2. 但是地址中保存的数值是可以改变的
int *const p;

区分常量指针和指针常量

关键在于*的位置

  • const 在*的左边--->>常量指针
  • const在*的右边---->>指针常量

巧记法:*读作指针,const读作常量  

  • int *【指针】const【常量】 p;  --->>  指针常量
  • const【常量】 int *【指针】p;  ------>> 常量指针
  • int const【常量】*【指针】p;----->>常量指针

函数传参所占空间

数组形参

  • 4字节

引用形参

  • 传过去的是整个目标的空间

结构体对齐

概念

  • 自身对齐值:数据类型本身的对齐值,例如char类型的自身对齐值是1,short类型是2;
  • 指定对齐值:数据类型本身的对齐值,例如char类型的自身对齐值是1,short类型是2;
  • 有效对齐值:自身对齐值和指定对齐值中较小的那个。

规则

  1. 不但结构体的成员有有效对齐值,结构体本身也有对齐值,这主要是考虑结构体的数组,对于结构体或者类,要将其补齐为其有效对齐值的整数倍。结构体的有效对齐值是其最大数据成员的自身对齐值;
  2. 存放成员的起始地址必须是该成员有效对齐值的整数倍。

速算法:

  • 结构体内成员自身对齐值的和

函数参数

实参

种类

  • 常量
  • 变量
  • 表达式
  • 函数

形参 

种类

  • 变量
  • 函数指针

你可能感兴趣的:(C语言,c语言,开发语言)