本篇再来谈谈C语言中,为何有人会说指针很灵活?指针是精华?我来说说我对灵活性的理解。
先举个例子。windows上有很多好玩的游戏,比如我大学时喜欢玩的三国争霸的游戏,游戏的内容就是给我一片空地,让我在空地上建造房屋,有了房屋就能生产农夫,有了农夫就能种地生产粮食,建造兵工厂,生产武器,农夫还能变成士兵等等。等到自己的实力壮大了,就能去攻击对方的城池。
这款游戏是一个exe程序,双击就能玩。可是玩着玩着,我发现如果农夫都挂了,粮食都吃完了,兵器都打完了,那我不就坐着被别人灭吗?不行,我要改源码。忽然天空一声响,源码来到我的面前,并且传来了上帝的声音“小玩怡情,大玩上身”。感谢帝哥给我源码,我就把对我不利的代码通通改掉,想改哪里改哪里,非常方便,非常灵活,我把代码改成可以生产无穷多的农夫,无穷多的粮食,无穷多的兵器,于是我成为了无敌手!但是我也有改错的地方,游戏运行一段时间就会报错,而且毕现,估计是哪里被改出问题了!
再回到指针,我可以使用指针直接操作内存,读也好,写也好,怎么样都好,我就是可以用指针访问内存,内存的数据尽在我手中,内存的命运尽在我手中,我想读哪里的数据,我想往哪里写什么数据,都随我意。就像我在修改三国争霸源码一样,怎么对我有利,我就怎么改,是不是很灵活!当然,如果指针操作不当,访问内存不当,如越界访问,野指针等,也会带来很多的问题,就像我改三国争霸游戏源码一样,哪里改错了我都不知道。
指针是个双刃剑,用的好,会给你带来很多的好处,用的不好也会给你带来很多的坏处!
网友评论