在C语言的指针运算中,经常会碰到以下用法:*++p、++*p、(*p)++、*(p++),在解决问题前,先了解一下基础:

1、 * 号和 ++ 符号属于同级运算,且优先运算顺序是从右到左。

2、a++ 表示:在当前一整句代码中,a取原值,等该句代码执行完毕(一个分号表示一句代码),下一句代码执行前,a会在原值基础上加1。可以通过以下代码理解:

假设int a = 3;那么

printf("%d", a++); // 输出3

等价于

printf("%d", a); // 输出3

a++;

3、* 号在定义变量时,表示类型是指针,如 int *p = NULL 表示这是一个叫p的指针;

* 号在运算时,表示取指针指向地址的内容,如下面打印语句的*p 表示取数组的值;

下面通过代码说明它们之间的区别:

int arr[] = {5, 10, 15, 20, 25};

int *p = arr;

//------------输出结果是在单独执行下面代码的前提下----------------//

//printf("%d\n", *++p); // 10 p先自+,然后*p,最终为10

//printf("%d\n", ++*p); // 6 先*p,即arr[0]=1,然后再++,最终为6

//printf("%d\n", *p++); // 5 先执行p++(没自加成功前面有其他运算符,要先处理),再执行 *

//printf("%d\n", (*p)++); // 5 先*p,即*p=arr[0]=1,然后1++,该一整句执行完毕后,在下一句代码执行前,arr[0] 会在原值基础上加1 = 6

//printf("%d\n", *(p++)); // 5 效果等同于*p++

c语言 p *p,C语言之指针*p++和*(p++)区别相关推荐

  1. 2.5 C语言入职例程二:指针

    2.5.1 强化指针概念 指针是C语言中最基本且很重要的概念,某种程度上甚至可以说:指针是C语言的灵魂. 不巧的是,我们公司新招聘的好多新人对C语言指针都比较陌生.和大家交流,思考背后原因,可能要拜人 ...

  2. go 指针变量和普通变量的转化_C语言 | 指向结构体变量的指针变量

    "要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...

  3. c语言输入后没答案,C语言章节习题及答案(无指针)解读.doc

    C语言章节习题及答案(无指针)解读 <C程序设计>复习题集 第2章 基础概念 一.选择题(在下列各题的A).B).C).D)四个选项中,只有一个选项是正确的) 2.1以下叙述中正确的是 A ...

  4. C语言复习篇之数组与指针

    C语言复习篇之数组与指针 学习了一段时间的嵌入式linux了,学习中有很多的东西需要总结,有经验有教训,我觉得把他写下来会更好,就当做是一种笔记的形式,记录学习中的点点滴滴,不仅仅自己可以经常复习,也 ...

  5. 【示例】C语言中利用数组存放函数指针

    C语言中利用数组存放函数指针,增加函数使用的灵活性.使用时只需提供数组索引,即可调用不同函数. 预备知识: 1.指向函数的指针 一个函数在编译时被分配一个入口地址,这个地址就被称为函数的指针. 例如: ...

  6. c语言类型名占字节,C语言实现 数据类型占多少字节指针占多少字节

    具体代码如下所示: #include void main() { //使用sizeof验证数据类型在内存中占用的空间大小 // char // int // short // long // unsi ...

  7. 结构体前面加星号_C语言中带星号的类型指针有哪些特性

    C语言中带星号的类型指针有哪些特性 指针是什么?很多人说,指针就是地址,那这么说的人肯定是对指针有所了解,他们这么说也不能说全错,我只能在这里说:"他们并没有真正学会指针,如果想学好指针,请 ...

  8. c语言指针易错情况,C语言/C++从入门到精通之指针易错点总结

    指针是C语言的灵魂,所以学好指针很关键,本篇主要介绍了C语言/C++从入门到精通之指针易错点总结,通过具体的内容向大家展现,希望对大家C语言/C++的学习有所帮助. 学习C语言肯定会碰到指针,指针是C ...

  9. 结构体自定义指针函数c语言,C语言结构体中的函数指针

    C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...

  10. C语言高级专题(4)-------指针和数组的高级应用

    目录 一,指针数组与数组指针 二,函数指针 三,typedef关键字 四,二重指针 五,二维数组 一,指针数组与数组指针 1.字面意思来理解指针数组与数组指针 指针数组的实质是一个数组,这个数组中存储 ...

最新文章

  1. PCIe配置空间和PCI设备中的寄存器
  2. C++ Opengl 显示列表源码
  3. PyTorch-训练
  4. 护理方面关于人工智能的构想_如何提出惊人的AI,ML或数据科学项目构想。
  5. 未发现数据源名称并且未指定默认驱动程序_看我如何发现NVIDIA GeForce Experience代码执行漏洞...
  6. IT网络通信大变革时代来临 2016中国极客大奖为您找到风向标
  7. android 组件生命周期,Android组件化开发实践(五):组件生命周期管理
  8. 博客园博客转至个人网站博客声明
  9. ES6 新特性(深入浅出ES6—阮一峰)
  10. TestStand-从LabVIEW创建TestStand数据类型的簇
  11. 历史经验之QT在WIN32下编译环境配置步骤
  12. SwiftUI+CoreData项目出现The operation couldn’t be completed(GenericObjCError error 0)错误的解决
  13. 计算机英语背诵发音,英语背诵十大技巧,简直不要太实用
  14. 全网最透彻的Hash分析
  15. android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...
  16. 深度学习(一):什么是深度学习
  17. 【C++】最近公共祖先 LCA
  18. MCU-51:单片机DS18B20温度报警器
  19. 初学数据库---数据库设计学习
  20. 悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈)

热门文章

  1. Gartner发布2021年数字商务技术成熟度曲线,重点关注四项技术
  2. 我把这篇文章给女朋友看,她终于明白什么是「数据中台」了
  3. 80% 的 Java 焦虑,都可以被这张图解决
  4. DevOps:从「蒸汽时代」到「高铁时代」,SUNMI DevOps转型之路 | 原力计划
  5. 聚焦效率与目标差距,数据才是远程办公的内核!
  6. 腾讯云连续三年登上KVM开源贡献榜,引领KVM技术标准!
  7. Service Mesh 在华为公有云的实践
  8. asp.net程序涉及案例_定制小程序 | 企业在开发小程序前需要满足哪些条件?
  9. python机械臂仿真_基于Python的3R机器人运动仿真
  10. 安装Vuecli新版本正常,但是显示版本是低版本