【c++】13.必须用指针取值的情况.md
生活随笔
收集整理的這篇文章主要介紹了
【c++】13.必须用指针取值的情况.md
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有時候我們會弄不清什么時候用指針,什么時候不用指針。我習(xí)慣性是不用指針的,因為我自己用不好指針,可能出現(xiàn)某些bug。但是一個合格的程序員,即使不用指針,也應(yīng)該掌握使用指針的各種用法。
碰到下面這種情況的時候,必須使用指針。
上面的 obu_buffer_[]是uint8_t類型,但是通過udp的data_stream_->read(obu_buffer_, kBufferSize, 0);讀取后,obu_buffer_被賦值,他的值是連續(xù)內(nèi)存的值。
obu_buffer_[2]和obu_buffer_[3]分別為1個字節(jié),連在一起這兩個字節(jié)的內(nèi)容組成了 【obuMsg長度 : 2字節(jié)】,所以此時我么使用指針的方式uint16_t* obu_length = reinterpret_cast<uint16_t*>(&obu_buffer_[2]);將兩個uint8_t類型數(shù)據(jù)的地址組合在一起并reinterpret_cast為uint16_t*,才能獲取到obuMsg長度,此時是不能分別通過obu_buffer_[2]這種方式來獲取到obuMsg長度。
總結(jié)
以上是生活随笔為你收集整理的【c++】13.必须用指针取值的情况.md的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】30.ssh不用手动输入密
- 下一篇: 【c++】15.订阅消息后转化为prot