原创 C++ 內存的字節對齊

一、字節對齊的原因            在訪問內存時,如果地址是按4字節對齊,則訪問效率會高很多。這種現象的原因在於訪問內存的硬件電路。一般情況下,地址總線總是按照對齊後的地址來訪問。例如,你想得到0x00000001開始的四字節內容,

原创 C++宏的作用與C#裏宏的代替(二)

繼續宏的作用,上一篇文章總結了使用宏定義常量和使用宏防止多重包含。下邊接着總結。 3、條件編譯 C語言中,預處理過程讀入源代碼,檢查包含預處理指令的語句和宏定義,並對源代碼進行相應的轉換,預處理過程還會刪除程序中的註釋和多餘的空白符號。預

原创 C++ this指針

一、this指針的理解 this指針是一個特殊的指針,指向一個類的具體實例,即一個類的對象。在類中,通過this指針可以訪問類的成員變量及成員函數。但this指針並不是對象本身的一部分,不會影響sizeof()操作符的結果。 關於this

原创 C++ 指針與引用的區別 小結

1、指針是一個實體,是一個變量,只不過這個變量的值存儲的是內存中的一個地址。而引用是變量的別名,指向存儲該變量的內存單元。 2、在訪問指針所指向內存單元的值時,需要對指針做解引用操作。而如果需要訪問引用所指向的變量的值,則直接使用該引用。

原创 C++ char* str與char str[]

在程序員面試寶典上看到這個兩句話: 1、char c[]="hello world"是分配一個局部數組; 2、char *c="hello world"是分配一個全局數組; 最開始還以爲是書上說錯了,因爲自己的理解是這兩種方式是等效的。下

原创 C++宏的作用與C#裏宏的代替(三)

6、宏組合  #和## 先上一段代碼: #include "stdafx.h" #include<iostream> using namespace std; #define s5(a) Connect_##a #define

原创 C++ auto_ptr

在C++中,auto_ptr智能管理動態分配的對象,當對象不再使用時,auto_ptr對象自動完成對被關聯對象的清理工作。是C++標準庫中爲了解決資源泄漏問題而提供一個智能指針類模板。 auto_ptr的源代碼(源自百度百科)如下: te

原创 C#與C++的命名空間

繼續總結在騰訊面試的出醜經歷--命名空間(namespace)。 1、命名空間(namespace) 在編程時爲了爲了區別不同的屬性或者不同的行爲,通常需要爲該屬性或該類行爲以一個便於記住的標識符命名,因此,對於具有相同屬性的同類事物,不