C、C++中“*”操作符和“后++”操作符的优先级
假设有如下的定义
char carr[] = {"test"};
char cp = carr;
那么表达式
*cp++;
的右值是什么呢?
这个表达式在数组遍历的程序中非常常见,但我对于这个表达式的理解有些偏差,我一直认为它和下面的表达式是等价的。
*cp;
cp++;
即先对cp进行解引用操作,然后使cp指向数组的下一个位置。
虽然说最终的结果是一样的,但是这样理解是错误的。因为后++操作符的优先级比*的高,这时我们马上发现这解释不通啊,如果后++的优先级比*高的话,那么*cp++表达式应该先将cp指向数组的下一个位置,然后才进行解引用操作,这样的话得到的右值和前面的不符!
其实在C或C++中对这个表达式的执行涉及3个步骤:
(1)++操作符产生cp的一份拷贝;
(2).然后++操作符增加cp的值;
(3).最后,在cp的拷贝上执行解引用操作。
C、C++中“*”操作符和“后++”操作符的优先级的更多相关文章
- C++中前置操作符和后置操作符的重载
1,C 语言中讨论了原生含义,C++ 中有必要考虑前置.后置操作符能够重载,有何问题: 2,值得思考的问题: 1,下面的代码有没有区别?为什么? 1,i++ // i 的值作为返回值,i 自增 1: ...
- EF中扩展出Between操作符 (修订版)
随手记录一下,这是针对原文错误的修改. 原文:EF中扩展出Between操作符 直接使用是错误的,修改后的扩展方法: /// <summary> /// 扩展 Between 操作符 // ...
- delphi 中record 的类操作符重载简介
今天简单介绍一下 delphi 中record 的类操作符重载使用,就是如何 实现 record 之间的简单操作. 关于类操作符重载 ,大家可以看官方的文档. Delphi allows certai ...
- java :: Java中的双冒号操作符
java中的双冒号操作符 定义 双冒号运算操作符是类方法的句柄,lambda表达式的一种简写,这种简写的学名叫eta-conversion或者叫η-conversion. 通常的情况下: 把 x -& ...
- C++语法小记---前置操作符和后置操作符
前置操作符和后置操作符 单独的"++i"和"i++"是否有区别 对于基本类型: 二者没有区别,因为编译器会对代码进行优化,二者的汇编代码完全相同 对于类类型: ...
- switch_case,&&,||,条件操作符和逗号操作符,循环语句
一.switch-case switch-case语句主要用在多分支条件的环境中,在这种环境中使用if语句会存在烦琐且效率不高的弊端. switch(expression) { case const ...
- JavaScript操作符(一元操作符)
JavaScript操作符包括算术操作符.位操作符.关系操作符和相等操作符.只能操作一个值的操作符叫做一元操作符. 递增和递减操作符 递增和递减操作符有两个版本:前置型和后置型.前置型操作符位于要操作 ...
- 【关于Java移位操作符&按位操作符】
一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(b ...
- C语言中点操作符(.)和箭头操作符(->)
C语言中点操作符(.)和箭头操作符(->) 点说语法不太准确,许多都称该之为点运算符/操作符,箭头运算符/操作符.但是OC中叫点语法,感觉理解起来还蛮舒服.毕竟基础的C操作符中是 相同点 两个都 ...
随机推荐
- 理解angular中的module和injector,即依赖注入
理解angular中的module和injector,即依赖注入 依赖注入(DI)的好处不再赘言,使用过spring框架的都知道.angularjs作为前台js框架,也提供了对DI的支持,这是java ...
- 自增字段 auto_commit的研究分析
MySQL自增字段,自增字段计数器在主存储里面,不在硬盘上(This counter is stored only in main memory, not on disk). 1,添加表,设立自增主键 ...
- ThinkPHP 3 的输出
一.ThinkPHP 3 的输出 (重点) a.通过 echo 等PHP原生的输出方式在页面中输出 b.通过display方法输出 想分配变量可以使用assign方法 c.修改左右定界符 休要修改配置 ...
- Mirantis Certification summary
preface Mirantis Certification (MCA100 )summary roughly question types handy remain by Ruiy!
- WebApi个人理解概要
WebApi概要 Global文件的作用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class MvcApplication : System.We ...
- eclipse或adt-bundle创建的android项目没有自动生成MainActivity.java和activity_main.xml等文件解决办法
以前我电脑一直以来都是用的eclipse3.7来开发android项目的,创建android项目也能正常生成MainActivity.java和activity_main.xml等文件.后来不知道什么 ...
- 在Attribute Inspector 上显示自定义的控件的属性
FirstColor 跟 CornerRadious 都是新增的显示属性具体实现方法如下: @property(nonatomic,weak)IBInspectable UIColor *firstC ...
- 属性"XmlFileName"的代码生成失败
属性"XmlFileName"的代码生成失败.错误是:"未将对象引用设置到对象实例" 解决: 控件修改造成,关闭打开页面,重新生成
- fork出的子进程和父进程的继承关系【转载】
[原文地址]http://blog.163.com/dengjingniurou@126/blog/static/53989196200962924412524/ fork出的子进程和父进程的继承关系 ...
- struts2 taglib struts标签学习整理中
项目中经常会用到struts标签,这样可以减少代码量. select用法: <s:select list="#request.sysTypes" name="rul ...