c++ - memcpy函数形参指针类型能不能是char* ?
伊谢尔伦
伊谢尔伦 2017-04-17 13:34:02
0
2
631

今天面试的时候被问到了。
我们知道memcpy传入的指针类型是void*。
但是由于复制的时候要一个个字节去复制,所以我们需要把void转换成char类型来处理。那么问题来了,我可不可以声明函数的时候就写成char*呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
迷茫

C/C++ 規定可以將任何類型的指針轉換為void指針,void指針轉換為任何類型的指針,所以我們可以將type 轉換為void ,然後將void轉化為char進行memcpy。若是入參定義為char,對於編譯器不能隱身轉換的型別需要在呼叫的地方進行指標型別強轉為char

洪涛

memcpy要做的是bit-wise的拷貝,所以需要逐位的去拷貝。 char類型只佔一個byte的空間,所以選擇char來實作。參數列表使用void*是為了表示該參數可以是指向任意類型的指標。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!