指针的地址传递

指针的地址传递,第1张

建议楼主改学别的。三百六十行,行行出状元。干嘛和c++过不去呢?

lin_victor163 - 试用期 一级 用引用是正解,另外用指针的指针也可。最符合楼主的意图。

超链分析 提供了另外一种解决方法。

point(char *p) 这个调用是指针的值传递。

{ p+=3}此处的p和main的p是两回事,调用是生成一个零时变量 char *p,把main里的p赋值给它。所以改变不了。

char b[4]={'a','b','c','d'},*p=b这样声明是个很恶劣的习惯,有的编译器可能会把p作为常量。可能是编译通不过原因之一。

搞在一行没任何意义,对于时间或空间效率没任何的影响。

把*p=b 另做一行,这样可读性好。

编程中,很多东西要你自己去摸索,才能真正的理解。关于地址与值的问题,其实你自己可以试,把变量的地址输出来看看看是不是一样,比如 printf("%x",&a)这样就是以把变量a的地址用16进制的方式输出来,看看地址到底是怎么一回事。

传值与传地址可以这样理解:

就像我把我写的作文抄了一份给你,你拿去看了之后把有的地方改了,现在我要交作文,而我有一份,所以我直接交了,我交的作文内容并没有变,这就是传值,即值传递。

同理,如果我把我的作文直接给你,你看了后也把有些地方改了,现在我也要交,你只能还给我,我再交,这时我交的就是被你改过的了,这就是传地址,即引用传递。

这只是我的理解,有误的地方还请指正。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12076131.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存