指针和数组
指针运算
- 指针是一种特殊的变量,与整数的运算规则为
p+n; --> (unsigned int)p + n*sizeof(*p);
结论:
当指针p指向一个同类型的数组的元素时:
p+1将指向当前元素的下一个元素;
p-1将指向当前元素的上一个元素。
- 指针之间只支持减法运算
- 参与减法运算的指针类型必须相同
p1-p2;--> ((unsigned int)p1 - (unsigned int)p2)/sizeof(type);
注意:
- 只有当两个指针指向相同一个数组中的元素时,指针相减才有意义,其意义为指针所指元素的下标差
- 当两个指针指向的元素不在同一数组时,结果未定
- 指针的比较
- 指针也可以进行比较关系运算(<,<=,>=,>)
- 指针关系运算的前提是同时指向同一个数组中的元素
- 任意两个指针之间比较运算(==,!=)无限制
- 参与比较运算的指针类型必须相同
下标形式VS指针形式
- 指针以固定增量在数组中移动是,效率高于下标形式
- 指针增量1