奇怪的指针又增加了

懒得再写一遍了,凑活着看吧

指针是什么:指针也就是内存地址,指针变量是用来存放内存地址的变量

符号 * 和 & 在c语言中的用法
在这里插入图片描述
指针在数组
如: int a[5]; 那么,a就是一度个指针,它指向数组的第一个元素。反过来,每一个指针都可以当做一个数组来用。如: char p=“0123”; 那么,编译器会分知配5字节存储字符串“0123”,而p则指向第一个字符’0’。所以,p==‘0’,(p+3)==‘3’。
其实,你完全可以不用运算符,由“等道价”可知:p[0]‘0’,p[3]‘3’


----------- * 与 ++

++ * p,* ++p,*p++,(*p)++

首先我们看一下c运算符的优先级,从表中我们可知优先级:++(后缀)大于 * 等于++(前缀),所以前两个我们直接从右往左结合就行,而后面两个我们把他们等价的看为 *(p++) 和(*p)++,现在思路是不是一下就清楚了

int a[5] ={1,2,3};
int *p;
p = a;
p指向数组,现指向1的地址* 翻译成中文为解引用
++ * p先取*p =1,然后取到的值自加得到2
* ++p++p指针自加,p指向2的地址,解引用得到2
* p++等价于* (p++),p++指向下一个地址,但解引用的是++之前的地址,所以得到1
(* p)++先取*p =1,后自加得到1(后++特性)

在这里插入图片描述


-----------* p()和(* p)()

​ 指针函数和函数指针。
​ 第一个为指针函数,返回值为指针。
​ 第二个为函数指针,指针指向函数。这东西有点离谱,也没啥用,大概知道就行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值