C语言*和++的结合运算不懂,看这里就够了

9 篇文章 0 订阅
5 篇文章 0 订阅

C语言*和++的结合运算

有朋友学习了指针,取值符号*和++混在一起摸不着头脑,两者结合后不懂如何运算,今天我给大家总结了简单明了的方法,包你看完就会,妈妈再也不用当心我的学习啦。来人,上代码

int arr[] = {1,4,8,10};
    
    int *p = arr;//指针p指向数组的第一个元素
    
    //*优先级高于++,所以*p取值为1,其次按照++的结合性,会对指针p进行加1,指向下一个地址
    int a = *p++;
    
    //由于此时p指向了第二个元素的地址,所以取值是4
    int b = *p;
    
    //先对*p取值为4,再自加结果为5
    int c = ++*p;
    
    //先对*p取值为5,下一个表达式再使用自加的结果6
    int d = (*p)++;
    
    //因为++是在后面,所以先算*p取值为6,然后指针p加1,下一个表达式使用p时,p已经指向第三个元素
    int e = *(p++);
    
    //此时指针指向第三个元素,取值为8
    int f = *p;
    
    printf("a = %d\nb = %d\nc = %d\nd = %d\ne = %d\nf = %d\n",a,b,c,d,e,f);
    //结果a = 1,b = 4,c = 5,d = 5,e = 6,f = 8
    

总结:
1.首先得确定++是对指针p进行自加还是对p的值进行自加,如果离++最近的是p,那就是指针加1,否则是p的值加1。

2.取值符h的优先级高于++,确定先运算取值还是先++运算,有括号先算括号。

3.注意++在前还是在后,如果先++,等号左边输出的是++后的值,如果是后++,等号左边输出的是++前的值,下一个表达式才使用++后的值。

看完还不懂童鞋留言评论给我。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值