指针的运算

本文详细介绍了C语言中的指针运算,包括指针的加减、比较、0地址的含义以及指针的类型和类型转换。强调了指针在数组操作、参数传递和动态内存管理中的重要作用。同时指出,虽然所有指针大小相同,但不同类型指针不能直接赋值,且0地址通常作为无效或未初始化指针的标识。
摘要由CSDN通过智能技术生成

指针运算


    *(p+1):加括号因为*的运算级高于+的运算级
1+1=2?
    给一个指针加1表示要让指针指向下一个变量

    int a[10];
    int *p=a;
    *(p+1)->a[1]

    如果指针不是指向一片连续分配的空间,如数组,则这种运算没有意义
    *(p+n)<->ac[n]
这些算术运算可以对指针做:
    给指针加、减一个整数(+,+=,-,-=)
    递增递减(++/--)
    两个指针相减


*p++


    取出p所指的那个数据来,完事之后顺便把p移到下一个位置去
    *的优先级虽然高,但是没有++高级
    常用于数组类的连续空间操作
    在某些CPU上,这可以直接被翻译成一条汇编指令


指针比较


    <,<=,==,>,>=,!=都可以对指针做
    比较它们在内存中的地址
    数组中的单元的地址肯定是线性递增的


0地址


    当然你的内存中有0地址,但是0地址通常是个不能随便碰的地址
    所以你的指针不应该具有0值
    因此可以用0地址来表示特殊的事情:
        返回的指针是无效的
        指针没有被真正初始化(先初始化为0)
    NULL是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值