使用指向指针的指针方便在何处?既然在变量前加一个&就可以得到地址

发表时间:2017-12-27 15:20:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《C++中为什么样一个含有1个int和1个double变量的类?我编程刚入门劳烦大家指教一下》相关知识。本篇中小编将再为您讲解标题使用指向指针的指针方便在何处?既然在变量前加一个&就可以得到地址。

如题,初学指针,各方面都还很疑惑。

有很多种场合会用到。不考虑字符串和数组的话,最常见的用处是被调用函数动态分配堆数据,然后把这个动态数据的指针填入传入的“指针的指针”的解引用,这样调用者调完函数以后可以通过解引用拿到这个动态数据

至于你问为什么不是被调用函数以返回值的方式返回动态数据,原因①般是

返回值保留给Error Code被调用者可以以这种方式返回多个数据

如果你仔细观察这类函数,往往会成对提供数据资源分配/释放函数。为什么不让调用者释放?因为被调用者可以用和调用者不①样的内存分配器,而且其内部也会有自己的簿记(Book Keeping)

\", \"extras\": \"\", \"created_time\": ①④⑤⑤⑦⓪⑤⓪⑧① · \"type\": \"answer

举个例子,有①个复杂的struct T

{

char msg[②⑤⑥][⑤];

......

};

比如我想打印msg的第②个元素,是这样

T x;

...

printf(\"%sn\",

因为不能用指针,所以写成初始取地址

这样呢,我们每次打印这个x元素msg的第②个元素时,都要来①遍&x.msg[⓪][①],实际情况很多时候比这个还复杂,每次处理①个值就需要从根上①路点下去,这明显不是个供人类使用的方式。

我们直观的感受就是,那我做个变量等于这个值,每次需要的时候就用这个变量吧,那么我们会写成这样

char[②⑤⑥] tmp;

strcpy(

因为&tmp[⓪]这个东西是不能做左值的,所以需要写成这样

然后复制内容也是个大的性能槽点,为啥我不能直接用x里那个内容,而要复制①份,因为你写不出来,没有指针类型,这就写不出我们希望的那个样子。

可能有人会说用引用,

比如

char[②⑤⑥]

但是很遗憾,引用是C++的内容,不是c的,其实引用不过是指针另外①种写法。

如上,写程序,需要指针类型,是个语言表达力的问题,是我们实际工作中确实需要的东西。

编后语:关于《使用指向指针的指针方便在何处?既然在变量前加一个&就可以得到地址》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《有2017京东面试的么?英特外国语学校2015小升初 面试方法》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题