两种表达都不同。让我们看一个示例代码来理解两个表达式之间的区别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <stdio.h>
int main(void)
{
    int aiData[5] = {100,200,300,400,500};
    
int *piData = aiData;
    
    ++*piData;
    
printf("aiData[0] = %d, aiData[1] = %d, *piData = %d", aiData[0], aiData[1], *piData);
    return 0;
}

输出:  101,200,101

说明:
在上面的示例中,涉及两个运算符,两者都具有相同的优先级,具有从右到左的关联性。所以上面的表达式++ * p相当于++(* p)。换句话说,我们可以说它是值的预增量,输出是101,200,101。

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <stdio.h>
int main(void)
{
    int aiData[5] = {100,200,30,40,50};
    
int *piData = aiData;
    
    *++piData;
    
printf("aiData[0] = %d, aiData[1] = %d, *piData = %d", aiData[0], aiData[1], *piData);
    return 0;
}

输出:  100,200,200

说明:
在上面的示例中,涉及两个运算符,两者都具有从右到左关联的相同优先级。所以上面的表达式* ++ p相当于*(++ p)。换句话说,你可以说它是地址的预增量,输出是100,200,200。

转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/11443868.html

表达式* ptr ++和++ * ptr是否相同?相关推荐

  1. *ptr++、*++ptr、++*ptr和(*ptr)++

    *++ptr.++*ptr.*ptr++.和(*ptr)++ int num[] ={1,3,5,7,9}; int* ptr_num = num; 先看*++ptr,这个很容易看出来先对指针移位地址 ...

  2. 汇编语言中word ptr | byte ptr分别是什么意思

    例如,下面的指令中,用word ptr指明了指令访问的内存单元是一个字单元. mov word ptr ds: [0],1 inc word ptr [bx] inc word ptr ds: [o] ...

  3. Const *ptr ptr

    1. const int *ptr = NULL; <=> int const *ptr = NULL; 1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量. ...

  4. ptr = (char *)malloc(0)

    char *ptr; if ((ptr = (char *)malloc(0)) == NULL) puts( "Got a null pointer "); else puts( ...

  5. OpenCV辅助对象(help objects)(3)——Ptr

    OpenCV中的Ptr(智能指针)经过多次版本修改之后,在OpenCV4.0版本之后编译器需要指出C++11的编译器才能编译.Ptr类也完全进行了修改,将Ptr修改为了使用C++11中的shared_ ...

  6. A记录、MX记录、NS记录、CNAME、PTR记录、AAAA记录、SRV记录、TXT记录、SOA记录 分别是什么意思

    nslookup是一种网络管理命令行工具,可用于查询DNS域名和IP地址 输入指令nslookup A记录: 此记录列出特定主机名的 IP 地址.这是名称解析的重要记录. MX记录:MX记录就是邮件交 ...

  7. Mat类中ptr的使用

    在Mat类中,访问数据的方法有多中,下面着重讲一下ptr成员函数. ptr可以获得指向每一行首地址的指针,访问矩阵中的数据如下: #include "pch.h" #include ...

  8. C语言再学习 -- 运算符与表达式

    分三部分来讲 一.左值与右值 参看:左值与右值 首先我们需要理解左值和右值的定义: 左值指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以做为 ...

  9. C++11 学习笔记 lambda表达式

    http://blog.csdn.net/fjzpdkf/article/details/50249287 lambda表达式是C++11最重要也最常用的一个特性之一.lambda来源于函数式编程的概 ...

最新文章

  1. Unity手游之路lt;七gt;角色控制器
  2. oracle+rownum(),Oracle rownum和row_number()
  3. 【总结】 Lucas定理
  4. ECS启动新“模”法
  5. 【转】64位ORACLE客户端上plsql无法识别ORACLE_HOME解决方案
  6. IE6 与 GZIP, BUG汇总
  7. LSTM 手动实现车牌识别 Pytorch代码
  8. 电气能插本计算机类吗,2019年专插本电气工程及自动化专业介绍
  9. Linux:Pycharm中使用Git
  10. ADSL拨号上网和宽带上网有什么区别?
  11. git的使用简介 常用命令
  12. 计算机音乐专业考研,武汉音乐学院2021年硕士研究生招生考试《计算机音乐作曲》考试大纲...
  13. Arduino入门小知识点总结(2)(红外感应开关 与 继电器接法 模拟输入输出tone函数)
  14. 图片url显示服务器,服务器上图片的url地址
  15. 世界上最著名也最危险的APT恶意软件清单
  16. ffmpeg与x264编码指南
  17. 班级优化大师显示网络或服务器异常,希沃班级优化大师常见问题总汇
  18. vue项目转换服务器端渲染,vue-server-renderer实现vue项目改造服务端渲染
  19. 搭建嵌入式ARM完整系统
  20. crypto buuctf rabbit

热门文章

  1. jQuery高级部分笔记
  2. 深度学习-超参数和交叉验证
  3. 软件框架和软件架构的区别?
  4. 完全卸载sql2005
  5. 程序三种与数据库打交道的方式性能及安全性比较
  6. Ajax/JavaScript脚本大全,JS脚本大全
  7. 高二女生制作危险驾驶报警手机软件
  8. 漫步线性代数六——逆和转置
  9. ISSN和EAN原理及转换【转载】
  10. Ubuntu16.04--code::blocks16.01 的代码拷贝到Windows 8.1--visual studio 2013 注意事项