C语言学习之指针 *p++、*(p++)、(*p)++
- 总结
- *p++与*(p++)是等价的,该表达式返回*p,即p表示的地址所存的数据,并且指针p自增1
- (*p)++ 该表达式返回*p,即p表示的地址所存的数据,然后该数据自增1
- 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)++相关推荐
- C语言 指针 规范,C语言学习知识指针习题集附规范标准答案.doc
C语言学习知识指针习题集附规范标准答案.doc /*一.选择题1. 变量的指针,其含义是指该变量的_________. a值 b地址 c名 d一个标志2若有语句int *point,a4;和point ...
- c语言学习02指针总结
本人工作Android开发越往高深方向专业,就越发现c语言的重要性.可以说java是简单的封装语言,但大量封装起来的不灵活,而Android的自带的java代码往往有些功能并不完美,这就导致高级开发就 ...
- C语言学习笔记---指针
C语言要玩的好,指针是核心,但是指针在学习的时候看教程往往感觉一看就明白,但是实际用的时候一用就错,而且还不知道错在哪.为了更加深刻的了解指针,将学习过程记录下来,依次加深对指针的理解. 先看看一段测 ...
- C语言学习笔记——指针章节
学习小结 c语言指针学习笔记汇总 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//指针 //在计算机科学中,指针是编程语言的一个对 ...
- c语言普通变量间接访问,C语言学习笔记-指针
野指针问题 野指针是没有指向地址的指针,也就是该指针指向的地址是随机的. 因为指针的指向地址是随机的,所以很有可能指向不可访问的弟子,导致程序崩溃,或者访问了不该访问的地址,导致影响其他功能使用 为了 ...
- c语言指针在左还是右,C语言学习之指针的右左法则
C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法.C标准的 ...
- c语言学习-使用指针求一个字符串的长度
c语言使用指针求一个字符串的长度 程序流程图: 代码: #include<stdio.h> #define N 81 void main() {char str[N],*string=st ...
- C语言学习笔记---指针和数组
数组是相同类型的数据集合,会在内存中占用连续的一块内存.而指针是存储的一个地址,在内存中不会占用连续的内存. 先来写一段测试代码 void fun(void) {int i;int num[10]={ ...
- c语言学习-使用指针对三个变量互相赋值
有3个整型变量i, j, k请编写程序,设置3个指针变量p1,p2,p3,分别指向i, j, k.然后通过指针变量使i, j, k 3个变量的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原 ...
最新文章
- 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
- C语言九十七之实现有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并且输出多少个
- 词频统计预处理之综合练习
- Linux的性能故障的含义,Linux排查性能故障的方法
- linux没有那个文件或目录_Linux安装python faiss模块
- MyCat分布式数据库集群架构工作笔记0015---高可用_负载均衡_Mycat双主双从读写分离
- 微信公众号开发 [04] 模板消息功能的开发
- 磁盘格式 mac android,MacDroid for mac(安卓手机数据传输助手)
- 再次翻看WCF的书籍
- KITTI立体匹配数据集解析
- 基于PHP+Web+Mysql的在线问卷调查系统
- 科普:什么是IPV4?什么是IPV6?
- 概率空间probability space 伯努利实验 n次伯努利实验
- UI界面设计相关知识(一)
- drbd+keepalived nfs高可用方案实践
- IDEA修改背景颜色(护眼绿)
- Java——反射机制(下)
- 在C语言程序中 当调用函数时,c语言程序设计第2版) 教学课件 作者 梅创社试题库 期末试卷一.docx...
- 网络编程基础 - m
- 固定资产折旧计算的方法[轉帖]