指针课堂小结!!!

在这里插入图片描述

在这里插入图片描述

间接访问又称引用

在这里插入图片描述

相同类型的指针才能相互赋值

在这里插入图片描述
在这里插入图片描述

值传递理解

错误的例子分析:main中,a=2,调用numpp函数时,实参a的值传如x,然后x+1,于是x=3,函数调用结束后,x被释放掉,而a的值依旧没有改变,还是2,形参x的值并不会再传给a,只能实参向形参单向传送。

正确的例子分析:main中,a=2,&a是a的地址,即指针,调用numpp函数时,a的指针传送给指针变量x,那么x就指向了变量a,(*x)++,也就是x指向的变量加1,也就是a+1,变成了3,函数调用结束后,x被释放掉,但a的变化被保留了下来,所以是加1后的值3。

总结1:“单向传送”的“值传递”方式,就是形参值的改变不能改变实参的值。不可能通过执行调用函数改变实参变量的值,但是可以改变实参指针变量所指向的变量的值。

经验:为了使函数中改变了的变量值能被主调函数所用,不能把要改变值的变量作为函数参数,而应该用指针变量作为函数参数。在函数执行过程中,使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来。
最后总结:函数执行过程中,不能通过改变形参变量的值,也不能通过改变形参指针变量的值,来改变实参变量或实参指针变量,而是通过改变形参指针变量指向的变量值,来改变实参变量的值。

还有一句话可以体会一下:函数的调用,只可以得到一个返回值(即函数值),而使用指针变量做参数,可以得到多个变化了的值

什么是值传递:

1、C语言中实参和形参之间的额数据传递是单向的“值传递”,单向传递,只能由实参传给形参,反之不能。
2、被调用函数的形参只有函数被调用时才会临时分配存储单元,一旦调用结束占用的内存便会被释放。
3、”值传递“中包括值传递(实实在在的值啊!)和指针传递(指针传递参数本质上是值传递的方式,它所传递的是一个地址值),传递的都是实参的一个拷贝,函数的执行并不会影响外部的原始实参。
4、主调函数向调用函数传递参数实际上只是将实参的拷贝(即临时副本)传递给了被调用函数,并不是实参本身,这样被调函数不能直接修改主调函数中变量的值,而只能修改其私有的临时副本的值。

什么是引用传递
对引用的操作等于对其指定的对象进行操作,当将实参传递给形参时,形参就指向了实参(形参与实参同义,是它的一个别名),相当于实参和形参是同一个东西,只是叫法不同。
注意:和类型在一起的是引用,和变量在一起的是取址;

在这里插入图片描述
在这里插入图片描述

!!!!

在这里插入图片描述

在这里插入图片描述

上述举例中,a+i是数组a的基地址的第i个偏移量,也是地址,也就类指针,所以*取出该地址的值。
提示:因为计算机找的是偏移量,为了使偏移量与下标对应方便查找,数组0也存数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我记得不是要取指针内的东西才能输出吗,为什么这里没有*呢。

好好好,盲区。
类输出字符串理解,a【9】的输出,是a,也就是从基地址开始一直输到字符串结束符为止,a不就是指针吗,一样的输出呢

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

!!!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值