吹着牛B学C语言之---指针

本文通过轻松幽默的方式解释了C语言中的指针概念,并探讨了指针如何与变量、数组及函数相互作用。同时,文章还简要介绍了函数参数传递方式,即按值传递和按地址传递的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吹着牛BC语言之---指针

Kunsa原创,转载请注明地址

初学C语言的朋友对指针很畏惧,其实没啥可怕的,之所以大家对指针的概念很模糊是因为和指针联系的东西很多,比如,指针数组,函数指针。。。。

从最基本的开始说:指针就是一个内存地址。。。说完了。指针就这么一个知识点。关灯,睡觉!

呵呵。有点吹牛B,其实就是这么一回事儿,指针就是一个内存地址,关键是他指向哪里,比如,有些指针指向变量,有些指向数组的头元素(其实就是指向数组),有的指针指向函数(这个用的很少。。),C++里边有的指向对象。。有点乱,其实如果你看不懂这段,完全不是因为你指针没有学好,是因为你的其它知识没有储备到位,不用着急,慢慢储备!

说明指针以前应该了解一下函数参数的传递方式,函数参数分按值传递和按地址传递(C++里边还有个按引用传递,暂且不谈),按值传递很好理解,比如,a=1,将a传给一个参数,就是把a复制一下传进去,注意,是复制,不是直接传进去。按地址传递有点难理解,我通俗一点说啊。按地址传递的话就是告诉函数,如果想操作这个变量就到这个地址这里去操作,比如,传int型变量a的指针,比如这个变量地址是0x1234567(具体地址表示方式我忘记了。⊙﹏⊙b汗。但是是这个意思的),那么函数想操作这个的时候就直接去0x1234567去操作了,而如果是按值传递,那就是复制一下,复制后的地址,,,鬼才知道。。

。。。。。好像指针就这么些东西。。。。。

再有就是mallocfree的了。。那个。。讲起来就更费劲了。。。先暂时理解这么些吧!其实大家有时间看看MSDN,对语言的理解很有帮助,呵呵。加油!

 

Kunsa一家之言,仅供娱乐!如有错误,敬请指正!   Kunsa拜上!~~~

2010.5.24 对小锐朋友提出的错误表示感谢!

        修改:我在上边说的“如果是按值传递,那就是复制一下,复制后的地址,,,鬼才知道

这段话有问题,在x86汇编里边,函数的参数传递分为三种,http: 
                                                                                                               ----------图片引自看雪论坛

如果您看不懂这个图片也大可不必伤神,里边涉及到的都是汇编知识,我稍微说一下,函数在传递参数的时候,包括传递指针,都是往堆栈中push变量,堆栈是系统为程序分配的一段内存,主程序在调用函数之前,先把需要传递的参数push到堆栈中,然后被调用的函数pop它们。在函数中的局部变量也是暂存在堆栈中。函数结束需要有个堆栈平衡,平衡堆栈的方法不同也就出现了三种不同的函数调用方式。。这个我就不细说了,呵呵,太详细的话就没完没了了。如果哪位有兴趣可以单独联系我。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值