指针算数运算

本文详细介绍了指针加1和减1的原理,以及指针之间的加减运算。指针加减并非简单地加减字节,而是根据指针类型加减相应类型的单元格数。例如,int* 加1会增加4字节(假设int为4字节),而指针减指针则表示两者间的单元格间隔。文中还通过实例演示了不同类型的指针运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、指针+1

    1、指针+1并非该指针变量加一个字节,指向下一个字节地址,而是加一个单元格

    2、计算指针+1具体加几个字节的方法是,给指针去掉一个型号,让后用sizeof()求出字节大小

例:int* p;

       p++;

//指针p+1,加4字节   sizeof(int) == 4

       double* p;

       p++;

//指针p+1,加8字节    sizeof(double) == 8

       char **p;

       p++;

//指针p+1,加4字节    sizeof(char *) == 4  注意:只用去掉一个*

接下来利用一段程序详细练习这一规律:

int main()

{

    int* p = int* 100;

    printf("%d\n",p+4);   // 116 p为int*类型,因此p+1就意味着加sizeof(int)==4字节,即p的值增大了4.而p+4就是加了4次                                                  1,就是说p增大了4*4=16  故:100+4*4=116

     printf("%d\n",(char*)p+4);// 104   同理:100+sizeof(char)*4=104

     printf("%d\n",(short*)p+4);// 108  同理:100+sizeof(short)*4=108

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值