首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程中使用指针的心得

关于指针,很多C的书中会非常强调的说这是一个大的课题。初级的编程中很少用到,也能比较好的让程序跑起来。

但当你深入的了解的单片机的工作原理,或者在内存资源比较少的片子上,当你在一个函数中要调用另一个函数的时候,并且需要传入一个数组变量,不想去申明一个全局变量的时候

传址不传值就显的犹为重要。你只要把一个指针传递过去就行了。我们来举个例子:

voidResponseServer(void){ unsignedchar*P =malloc(100);//申请了一个内存空间,在堆中  for(unsigned char i=0;i

{

p[i] = i;

}

Socket_Send(*p,100);//通过网络发送free(p);}

voidSocket_Send(unsignedchar*p,unsignedcharlength){

//从网络按字节发送数据

}

我们可以看到,上面的代码实际上只是把一个8位型的指针给了socket_send了,这个函数只要按顺序使用P++就可以读取想要的数据,且一位一位的发出去。

当执行完下面的代码,其实动态申请的堆内存空间已经释放了。且这片空间可以被重复复用。想像一样,如果不使用指针来做,使用一个全局变量的话,这个空间是一直占用的,不够环保。

还有一个优点。代码可以做到相关性更小,移植性更大。

ResponseServer();

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180826G0C7AD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券