圖中data為QByteArray類型,而函數原型為const char類型,broadcast為枚舉類型,而函數原型為hostaddress類型。為什麼不同也能夠實現其功能呢?
這裡發生了隱式類型轉換
QString raw_string = "haasd123ha";
QByteArray byte_instrument = raw_string.toLocal8Bit();
const char *char_instrument = byte_instrument; //打印出來發現一樣
QByteArray自動的保證“最後一個字節之後的那個位”是'\0'。這就使得QByteArray可以很容易的轉換成const char *
調用QByteArray類上面的data()或者constData()函數,僅僅是獲得QByteArray內部的一個const char*類型的字符串,從而我們不需要擔心內存洩漏等的問題