首先查看C语言运算符优先级表,可以看到++和指针的*号运算优先级都是第二级。结合方向都是“右到左”


*p++:等同于:*p;  p += 1;

解析:由于*和++的运算优先级一样,且是右结合。故*p++相当于*(p++),p先与++结合,然后p++整体再与*结合。前面陈述是一种最常见的错误,很多初学者也是这么理解的。但是,因为++后置的时候,本身含义就是先运算后增加1(运算指的是p++作为一个整体与前面的*进行运算;增加1指的是p+1),所以实际上*p++符号整体对外表现的值是*p的值,运算完成后p再加1.

【注意】是运算后p再加1,而不是p所指向的变量*p再加1


*++p:等同于 p += 1;    *p;

解析:由于++在p的前面,++前置的含义是,先加1,得到一个新的p(它的值是原来p的值加1)。然后这个新的p再与前面的*结合.


【总结】无论是*p++还是*++p,都是指针p += 1,即p的值+1,而不是p所指向的变量*p的值+1。

++前置与++后置,只是决定了到底是先p += 1,还是先*p。++前置表示先p += 1,再*p。++后置表示先*p,在p += 1;

--前置与--后置的的分析方法++前置与++后置的一样。


【补充】  (*p)++  与 ++(*p)

(*p)++,使用()强制将*与p结合,只能先计算*p,然后对*p整体的值++。

++(*p),先*p取值,再前置++,[该值+1后]作为整个表达式的值。


【四种形式的助记】

1、*永远在最前面,++可以站在p的前面和后面

2、(*p)作为一整体,++可以站在(*p)的前面和后面

C语言基础知识:*p++与*++p;(*p)++  与 ++(*p)的理解相关推荐

  1. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  2. python代码计算矩形面积_学习资料Python语言基础知识笔记以及答案

    01. Python语言基础知识等笔记: 02. Python作业答案: [例2-3]通过输入函数input()输入股票代码.股票名称.当天股票最高价和最低价,通过输出函数print()输出股票代码+ ...

  3. 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc

    计算机JAVA教程二讲Java语言基础知识 2.1简单数据类型 2.1.1 标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier).Java语言 ...

  4. java填空题_Java语言基础知识填空题

    Java语言基础知识填空题 想学java语言的人,要多做题才能巩固知识,下面小编为大家带来了Java语言基础知识的填空题,欢迎大家阅读! Java语言基础知识填空题. 1.浮点型数据根据数据存储长度和 ...

  5. c打印无符号整数_C语言基础知识:printf的输出格式,C/C++语言编程讲解

    C语言基础知识:printf的输出格式 printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是用%c 符号.这些符号被称为 ...

  6. -wl是不是c语言的标识符,C语言基础知识考试

    第一章 C语言基础知识 一.选择题 1.C语言规定,必须用 作为主函数名.(0级) A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数, ...

  7. C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...

    [[怪兽爱C语言]牛逼大神整理的C语言基础知识,你确定你不码下来?]https://toutiao.com/group/6577344220355363341/?iid=15906422033& ...

  8. MATLAB基础教程(2) 语言基础知识

    本教程主要讲到MATLAB语法.运算符.数据类型.数组索引及处理等等语言基础知识.大概可分四大部分: (1)输入命令 输入命令- MATLAB & Simulink- MathWorks 中国 ...

  9. 无锡c语言编程培训学校,无锡c语言培训班——C语言基础知识

    原标题:无锡c语言培训班--C语言基础知识 1. 每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数中结束. 2.在C语言中,用e来表示科学计数法时, ...

  10. c语言二级考试基础知识,2018年计算机二级考试《C语言》考点:C语言基础知识...

    2017年计算机等级考试已经结束,出国留学网为考生们整理了2018年计算机二级考试<C语言>考点,希望能帮到大家,想了解更多资讯,请关注我们,小编会第一时间更新哦. 2018年计算机二级考 ...

最新文章

  1. DPDK — IGB_UIO,与 UIO Framework 进行交互的内核模块
  2. 【2】thinkphp 3.2.3简单介绍
  3. 惯量匹配和最佳传动比
  4. r语言dataellipse_r – 在ggplot2中微调stat_ellipse()
  5. 企业微信H5_身份验证,PC网站企业微信扫码授权登录
  6. ipython 更好的交互环境
  7. java excel模板中列表_java中自定义excel模板并且填充内容
  8. 资源分享 | 网易云课堂价值 399 的 office 三合一自学教程
  9. 打破信息茧房-我主动获取信息的方法 -#3
  10. Python系列 之 ReportLab库 pdfgen模块Canvas对象绘制图形和文本
  11. 1、【软件测试工具安装教程】
  12. 分布式数据库笔记 —— 数据一致性模型
  13. win10任务栏假死问题
  14. 华硕天选2 安装3060显卡驱动方法
  15. 代理服务器的常用端口有哪些?
  16. LeetCode 罗马数字
  17. 敏捷开发 敏捷个人_在敏捷2013中寻找答案
  18. 别看 DNS 污染闹得欢,现在我用 CoreDNS 将它拉清单
  19. 怎么用控制面板卸载软件?(简单 有图)
  20. psm进销存管理系统、供应商管理、进货管理、销售管理、仓库管理、采购记录、库存盘点、调拨单、出库单、借入单、进货报表、采购记录、销售往来账、采购往来账、图表分析、人事管理、销售报表、财务报表、rp原型

热门文章

  1. 性格类型之ISFP艺术家型——有爱心的艺术工作者
  2. 数据结构课设----运动会分数统计系统
  3. Python实战项目2——自动获取酷狗音乐工具
  4. 第十六届全国大学生智能汽车比赛—摄像头算法控制总结
  5. [美]杰克·韦尔奇《赢》
  6. K3 CLOUD计划管理之计划方案(MPS/MRP)
  7. 联通云服务器怎么修改密码,桌面云使用说明
  8. 【案例】路由器怎么自动获取IPv6地址?
  9. 查询读者的借阅信息mysql_MySQL数据库命令行【篇章九】之数据库综合查询(SELECT)...
  10. python爬虫接单发源地_python爬虫任务接单渠道