1、 *和++哪个优先级更高?

      两个处于同一优先级,编译器结合方向是自右向左,所以*a++可看成*(a++),即先执行a++,后执行*a。但由于这里的“++”号是后加加号,所以会在整条语句执行完后再对a自加一。所以最终的实际执行效果等效为:先执行(*a)操作,后a自加。*a++可看成*(a++),即先执行a++,后执行*a。但由于这里的“++”号是后加加号,所以会在整条语句执行完后再对P自加一。所以最终的实际执行效果等效为:先执行(*a)操作,后a自加。

2、*a++和(*a)++的区别

一个是 指针后移 一个是指针指向的内容自加

3、举例

int *a, b[2]={2,1},c;
a = b;
c=*a++ 那么 a 指向b[0] 则c=b[0]=2,执行完后a++,这时a 指向b[1]
c=(*a)++ 那么 c =b[1]=2

注意:在编译器中单独的“  *a++ ;”或者“(*a)++”,编译器是会报错的,想实现指针后移 ,应int*a;a++;那么为什么编译器会报错呢?这里就会牵涉到C语言中的左值(Lvalues)和右值(Rvalues)问题。

C 中有两种类型的表达式:

  1. 左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
  2. 右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。

变量是左值,因此可以出现在赋值号的左边。数值型的字面值是右值,因此不能被赋值,不能出现在赋值号的左边。*a就是指向储在内存中某些地址的数值,所以*a++ 即*a=*a(++),(*a)++=(*a)++,都是错误的

*a++的含义及C语言中的左值(Lvalues)和右值(Rvalues)相关推荐

  1. c语言中字符串关于左值,关于左值lvalue和右值rvalue的一点理解

    发现很多朋友对"lvalue"和"rvalue"理解有误,我先谈谈自己对此的一些理解,并期望能够引起更多朋友的广泛讨论.也算起到抛砖引玉的作用吧.引用:注:这里 ...

  2. C语言中函数的调用和函数返回值(17)

    C语言中函数的调用和函数返回值 一.函数的调用形式 按照函数调用出现的形式,可以分为三种调用方式: 1.函数调用语句 例如: printf_star(); 2.函数表达式 c=2*max(a,b); ...

  3. C语言的左值(lvalue)和右值(rvalue)的含义是什么?

    C语言的左支(lvalue)和右值(rvalue)的含义是什么? (1)左值就是一个可被存储的单元,右值就是一个可被读取的数据.      (2)左值必须是一个被明确了的内存存储单元,可以用来被赋值: ...

  4. c语言 变量的左值和右值,C++雾中风景10:聊聊左值,纯右值与将亡值

    C++11的版本在类型系统上下了很大的功夫,添加了诸如auto,decltype,move等新的关键词来简化代码的编写与降低阅读代码的难度.为了更好的理解这些新的语义,笔者确定通过几篇文章来简单窥探一 ...

  5. python右斜杠_Python中的左斜杠、右斜杠(正斜杠和反斜杠)

    首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Wi ...

  6. c 表达式必须是可修改的左值_C++中的左值,右值,左值引用,右值引用

    童帅 2020-2-22 文中的"表达式"都是指赋值表达式 左值,右值,左值引用,右值引用 到底是什么 左值和右值 int a = 10; int b = 5; int c = a ...

  7. [c++]-c++中的左值和右值、左值引用和右值引用、万能引用和引用折叠及完美转发

    1.左值和右值 1.1左值和右值定义 在c++中,左值是一个指向内存的东西,换句话来讲,左值有地址,保存在内存中,右值则为不指向任何地方东西,即不在内存中占有确定位置.一般来说,右值是暂时和短暂的,而 ...

  8. C语言程序顺序结构1交换变量,如何将c语言中结构体内的所有类型变量的值输出来...

    教了多年<C程序设计>课程,大多学生觉的这门课程难学.其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,克服心理上畏难.不轻言放弃,是完全可以学好的. <C 程序设计& ...

  9. 5求的值c语言编辑,C语言中怎样求1+3+5~~~~~+9值并 – 手机爱问

    2018-04-06 C 语言中的原码怎么? 数计算机二进制形式表示数分有符号数和无符号数原码.反码.补码都有符号定点数表示方法有符号定点数高位符号位0正1副下都8位整数例原码数本身二进制形式例100 ...

最新文章

  1. tjoi2018D2T2(luogu4590) 游园会 (状压dp)
  2. attribute关键字
  3. File类对文件的操作应用
  4. [vue] 删除数组用delete和Vue.delete有什么区别?
  5. 胶囊网络不同实现代码
  6. 查看oracle 用户执行的sql语句历史记录
  7. 清除mysql数据碎片_MySQL 清除表空间碎片方法总结
  8. 微软服务器系统桌面无图标,开机桌面没有图标的几种解决方法
  9. Java(Android)游戏开发框架LGame-0.2.7发布
  10. Python+matplotlib设置y轴标签距离、位置、竖排
  11. 可以进行单元测试么_大量实例助攻,让你的单元测试更高效
  12. linux搭建phantomjs+webdriver+testng+ant自动化工程
  13. turbo c语言编程环境,turbo c(编程软件)
  14. 达梦DM7DM8下载地址 - 2022-03-16更新
  15. 编写一个压缩软件(Java实现版本)
  16. 打字教程新手篇-指法练习的重要性和注意事项
  17. php快照劫持代码,php快照劫持跳转代码,php快照劫持源码下载
  18. php短链接api,PHP实现短网址还原API接口
  19. 从右往左截取字符_按照某个字符串从右到左以第一个为条件截取数据
  20. 网络通 浏览器 无法上网

热门文章

  1. 华三交换机升级的ipe文件_交换机版本升级步骤
  2. 实现私有DNS搭建(正向解析+反向解析+主从同步+安全措施+配置转发服务器+基于ACL实现智能DNS)
  3. IBM Websphere MQ 基础0:Linux下安装IBM MQ 7.5
  4. 500万相机芯片尺寸_工业CCD相机芯片靶面尺寸的计算
  5. 电子信息工程与计算机就业现状,电子信息工程现状及发展前景
  6. python中获取文件扩展名
  7. 西行漫记(12):对象,结束与开始
  8. Google 广告投放(iOS)
  9. python字符串(二)
  10. 共赢云时代——用友能源耕云计划全国行河南站圆满结束