ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

指针在32位平台下,无论指针的类型是什么,sizeof(指针名)都是4

指针在64位平台下,无论指针的类型是什么,sizeof(指针名)都是8

 

空指针

int *select = 0; //空指针,就是值为0的指针。这块内存应用程序永远访问不到!是被操作系统预留的内存块。

int *select = NULL;//高逼格写法      NULL是c/c++指定的可以用来表示空指针的一个宏定义(0)  

使用:

1.指针初始化为空指针,目的避免访问非法数据。

2.指针不在使用时,可设置为空指针。

3.表示这个指针还没有具体的指向,使用前进行合法性判断

 

指针的运算

1.指针p++的概念是在p当前地址的基础上,增加指针对应类型的字节大小 p = p+1*(sizeof(类型))

2.自减同理

3.*p-- .  *和--是同一优先级,结合顺序从右到左,但是是后置减,所以待*p执行完后,再p--. 还可以加上括号 *(p--)

4.指针和整数之间的运算不是单纯的一个字节一个字节的增加,而是根据指针类型进行增减运算。

5.指针减指针:

          以整数数组为例:指针减指针计算的是整数数组元素的偏移值(可以为负数)。而不是相差的字节数。就算不是同一数组也可以进行相减,结果为相差的字节数除以4。(但并没有意义)不同类型的指针不允许相减。

6.两个指针相加没有意义,且没有结果。

 

二级指针的用途

1.普通指针可以将变量通过参数“带入”函数内部,但没办法将内部变量“带出”函数。

2.二级指针不但可以将变量通过参数带入函数内部,也可以将函数内部变量“带出”到函数外部。

posted on 2022-05-27 18:17  理想主义者光芒万丈  阅读(179)  评论(0)    收藏  举报