• 总结
  1. *p++与*(p++)是等价的,该表达式返回*p,即p表示的地址所存的数据,并且指针p自增1
  2. (*p)++ 该表达式返回*p,即p表示的地址所存的数据,然后该数据自增1
  3. C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先级比*和++都高,所以++作用在()内的表达式*p上。
    #include <stdio.h>
    int main(){int a[] = {1, 2, 3, 4, 5};int *p = a;printf("%d\n", (*p)++); //该语句在屏幕显示 1 实际上该语句可以理解为printf("%d\n", a[0]++); p还是指向a[0]printf("%d\n", *p);//该语句输出2,此时p指向a[0],但在上一条语句a[0]++在返回一个a[0]的值给printf后就自增为2了printf("a[0]的地址是%p, p指向了地址%p\n", &a[0], p);//验证p指向了a[0],是a[0]由1自增到了2a[0] = 1;//将数组还原成a[] = {1, 2, 3, 4, 5};printf("%d\n", *p++);//输出1,p指向a[1]printf("%d\n", *p); //该语句输出2,实际上输出的是a[1]printf("a[1]的地址是%p, p指向了地址%p\n", &a[1], p);//验证p指向了a[1],是p自增了/**由以上可知,*p++可以用来遍历数组* */int i;p = a;//将指针p重新指向 a[0]for(i=0; i<5; i++)printf("%d ", *p++);printf("\n");return 0;
    }
    

C语言学习之指针 *p++、*(p++)、(*p)++相关推荐

  1. C语言 指针 规范,C语言学习知识指针习题集附规范标准答案.doc

    C语言学习知识指针习题集附规范标准答案.doc /*一.选择题1. 变量的指针,其含义是指该变量的_________. a值 b地址 c名 d一个标志2若有语句int *point,a4;和point ...

  2. c语言学习02指针总结

    本人工作Android开发越往高深方向专业,就越发现c语言的重要性.可以说java是简单的封装语言,但大量封装起来的不灵活,而Android的自带的java代码往往有些功能并不完美,这就导致高级开发就 ...

  3. C语言学习笔记---指针

    C语言要玩的好,指针是核心,但是指针在学习的时候看教程往往感觉一看就明白,但是实际用的时候一用就错,而且还不知道错在哪.为了更加深刻的了解指针,将学习过程记录下来,依次加深对指针的理解. 先看看一段测 ...

  4. C语言学习笔记——指针章节

    学习小结 c语言指针学习笔记汇总 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//指针 //在计算机科学中,指针是编程语言的一个对 ...

  5. c语言普通变量间接访问,C语言学习笔记-指针

    野指针问题 野指针是没有指向地址的指针,也就是该指针指向的地址是随机的. 因为指针的指向地址是随机的,所以很有可能指向不可访问的弟子,导致程序崩溃,或者访问了不该访问的地址,导致影响其他功能使用 为了 ...

  6. c语言指针在左还是右,C语言学习之指针的右左法则

    C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法.C标准的 ...

  7. c语言学习-使用指针求一个字符串的长度

    c语言使用指针求一个字符串的长度 程序流程图: 代码: #include<stdio.h> #define N 81 void main() {char str[N],*string=st ...

  8. C语言学习笔记---指针和数组

    数组是相同类型的数据集合,会在内存中占用连续的一块内存.而指针是存储的一个地址,在内存中不会占用连续的内存. 先来写一段测试代码 void fun(void) {int i;int num[10]={ ...

  9. c语言学习-使用指针对三个变量互相赋值

    有3个整型变量i, j, k请编写程序,设置3个指针变量p1,p2,p3,分别指向i, j, k.然后通过指针变量使i, j, k 3个变量的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原 ...

最新文章

  1. 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
  2. C语言九十七之实现有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并且输出多少个
  3. 词频统计预处理之综合练习
  4. Linux的性能故障的含义,Linux排查性能故障的方法
  5. linux没有那个文件或目录_Linux安装python faiss模块
  6. MyCat分布式数据库集群架构工作笔记0015---高可用_负载均衡_Mycat双主双从读写分离
  7. 微信公众号开发 [04] 模板消息功能的开发
  8. 磁盘格式 mac android,MacDroid for mac(安卓手机数据传输助手)
  9. 再次翻看WCF的书籍
  10. KITTI立体匹配数据集解析
  11. 基于PHP+Web+Mysql的在线问卷调查系统
  12. 科普:什么是IPV4?什么是IPV6?
  13. 概率空间probability space 伯努利实验 n次伯努利实验
  14. UI界面设计相关知识(一)
  15. drbd+keepalived nfs高可用方案实践
  16. IDEA修改背景颜色(护眼绿)
  17. Java——反射机制(下)
  18. 在C语言程序中 当调用函数时,c语言程序设计第2版) 教学课件 作者 梅创社试题库 期末试卷一.docx...
  19. 网络编程基础 - m
  20. 固定资产折旧计算的方法[轉帖]

热门文章

  1. 相濡以沫与相忘于江湖
  2. 工作日记---android lockscreen.java 在lock状态下显示charing和alarm
  3. Android Studio 随手记
  4. 【理想流】程序员的性格和命运
  5. linux打开文件脚本,linux脚本文件实现的功能有哪些剧本用工具打开
  6. 迷宫花坛(garden)
  7. 陶瓷电容NP0、C0G、X7R、X5R、Y5V、Z5U的区别
  8. 微信开发之微信环境h5页面登录实现流程
  9. 山寨起源——河神的全斧头
  10. 点击按钮没反应,或者有时有反应有时没反应