指针学习经验

关于指针
指针就是一个地址!相当于告诉你家的位置,变量(相当于家具)可以放在地址(家的位置)
好,但是电脑不像家那样可以告诉你在某某大街,有多少多少号,那么计算机是怎么做的?
计算机有0,1组成,是电路开表示1,闭表示0,所以地址一定是一串01组成的数字,
在c里面以16进位打印它,如下:


62fec,这个fec就是十六进制,你想啊把它转成二进制不就行了吗
有人又要问,你说了这么多概念要在c语言中怎么实现呢
int *p就来了
//那就用到*,“*”是指针声明符 ,“*” 在定义指针变量时被使用,说明被定义的那个变量是指针//
这里说几点容易搞混的:
1.我们一般用p代表指针,因为point有指针的含义,你也可以用a用b用c去表示指针,那我们人看懂了,
计算机没看懂啊,所以我们要加一个“*”,*p,(注意这里的*和下文拿东西的*有区别)
2。那么既然有家了,里面肯定得放家具啊,所以我们要在前面加一个int,告诉计算机我放的是家具,不是
长颈鹿🦌。
既然你懂大概意思了,那在补充点,这里的*p我们叫它指针变量,变在哪呢,变在你还没和计算机说这里是张三的家还是坤坤的家,如int *p1=zhangsan;int  *p2=kunkun。
又有人问这有什么用啊,好处就在于函数调用(从现在开始忘掉你脑子里搞不清的形参实参,现在只有指针
和参数!)
直接看例子!
这里函数fun,把i的地址给了指针变量;·
记得我们之前说*还有拿东西的作用吗,这里的“*”和我们之前表示定义的*不一样,
这里的*p表示取出指针变量指向的地址里的值,相当于我找到了张三家拿出了他家里的一把椅子;我们把它
打印出来发现确实是5;那么我们可不可以在函数里改变这个值,答案是用取地址方式可以
因为我们传递的是指针(&为取地址)
回到g函数中k就是一个参数,所以把i的参数值给他,确实是89!
把这俩个函数调换一下位置就不行了
上例子!
把i的值5,也就是参数给了k,对k加45,再回到fun中发现i的地址上存储的变量(5)没有丝毫改变;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值