2013-09-29 72 views
0

我想問爲什麼我必須使用&緩衝區,而不是緩衝區,爲什麼我傳遞地址重新解釋轉換或類型轉換。謝謝。DWORD char *轉換

DWORD buffer; 
std::ifstream openFile("xxxxx",std::ios::in|std::ios::binary); 
std::ofstream writeFile("xxxxx",std::ios::out|std::ios::binary); 


while(!openFile.eof()) 
{ 
    openFile.read(reinterpret_cast<char*>(&buffer),sizeof(DWORD)); 
    writeFile.write((char *)&buffer,sizeof(DWORD)); 
} 
+1

的'read'和'write'方法需要一個指向的內存來存儲/檢索數據,所以你必須通過buffer'的'地址。 –

+0

OT:http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – Barmar

回答

1

結賬this pointers reference。你所擁有的是一個變量,前面加上&來告訴C++你想引用數據的地址位置(稱爲數據指針)。這是創建高效代碼的有效方法,因爲當您將數據傳遞給函數時不必複製數據,只需將函數的位置告訴函數,以便可以根據需要引用它。

乾杯