C语言之指针*p++和*(p++)区别
来源:互联网 发布:三国志9高难度优化伴侣 编辑:程序博客网 时间:2024/05/16 13:41
在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++
阅读全文
0 0
- C语言之指针*p++和*(p++)区别
- C语言指针的*p++ ,*p(++), (*p)++,*++p的使用
- C语言指针的*p++ ,*p(++), (*p)++,*++p的使用
- 指针问题:C语言中 int*p[4] 和 int(*p)[4]的区别 等等
- C语言基础指针之const char *p,char const *p,,cahr * const p 三者之间的区别
- (C)*p++和*++p区别
- 【C语言】*++p,*p++,++*p,++*++p,++*p++
- 小记C语言指针p与*p
- C语言,指针变量的*p,p以及&p的区别
- C语言指针 int *p[10] int (*p)[10] int *p(int) int (*p)(int) 区别与举例
- C语言中的指针(*p p &p)
- 【C语言】对指针p ,*p ,**p 的认知
- 指针 *p++和*++p
- c语言数组中 *P和&p;P三者的区别
- C语言*p、p以及&p的区别
- *p,p和&p区别:
- C语言学习零碎整理(5):关于char指针p和char s[]的区别
- C语言学习零碎整理(5):关于char指针p和char s[]的区别
- 11.14学习心得
- freeswitch 在redhat 7.0/centos 7.0上的编译安装
- C#字符串转数组,数组转字符串,后遍历数组
- 关于IOS证书过期的问题
- LeetCode-160. Intersection of Two Linked Lists
- C语言之指针*p++和*(p++)区别
- on release of batch it still contained JDBC statements
- Paxos算法
- 基于EasyNVR二次开发实现业务需求:用户、权限、设备管理
- dajngo debug=false时无法加载css、js
- UE4 坐标轴绘制
- 20171114
- Android:学习AIDL,这一篇文章就够了(上)
- 以太坊geth客户端基本命令