指针C语言(1) 还安ikun

基本格式 void*pn=&n;(一级指针),即数据类型+ * + & +一堆乱七八糟的字母(变量)

b20747a679bb45cc8a04180c05d038df.png

50da7d4789244536bd08b42652198436.png 

 ..................…………………………………………………………

 

5f6423b0294e48ae901dc809956cb77e.png

 指针加减=对应的数据类型步长加减

 

addf38571baa4ef8a7a2cc682a36450e.png

指针与数组联动,其中定义了一个p,通过变换p的值来依次给数组赋值 (难点)

自我尝试

7ab6fe69d0d94679a36aa24eebdc0648.png

循环+指针 

..................…………………………………………………………

 

1c673914ba0f4509880fde38351b8a2d.png

懵圈点,数组被强行转换成了指针 

 

..................…………………………………………………………

ad038802b6b347b1aea180a35406c2cf.png

bda5587a4c394a58b5670117413ffd20.png 

 a,b与x,y因为地址不同导致a与b的值不可交换,巧妙照应了指针中重要的取地址运算符&(虽然我老在scanf 函数中忘写)

解决方法(以后常用)

98c3137c34154adba175c15399657f0c.png

6d42021c5b7c4563b19c85f7a5cda334.png 

 总之运用*来获取变量的首地址,即可再用&获取首地址,即可完成不同字母变量的函数调用

..................………………………………………………

多级指针

本人较🥗,从二级指针来入手

f21bc777adf84692b7caab10e9fa1494.png 

 b15d1556795b48d994120b25e0a3ebea.png 

从一级指针来取地址符【&】, 基本书写如上

..................………………………………………………

be5e7fcb61544badbbbe84d47261c9fa.png

看完这个问题,我直接想用一级指针去记录一级指针,然后........

505b9277babc45a89374cd8d19e1c2f6.png

                      (图片摘自 北辰水墨 )!!!!

发现我却输得如此彻底,騲   🐔🐔🐔

然后我就上网查........

1984fe05ccb141bbaf96daea2d9c8ed5.png

 看完后感觉一级指针与二级指针 就像 数组与数组中的元素,但该数组仅一个元素。因为取地址符的层层递进,若一步错易步步错。

..................………………………………………………

经过我与学长讨论,发现 * 与 & 的额外作用🐔:

*:放在指针前面可以使指针降一级(即由3级指针—›2级指针)

&:放在指针前面可以使指针升一级

 上述如图

f228e5282a4c44ce9eb02860a7cdbdd1.png

& 使 *pn—›**pn

42dfb8c084754d89a3194797e83b00d9.png

 * 使 **a → *a 

..................………………………………………………

未完待续2cbfdccc50b24c36ab77095ee4d7fdc2.png

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值