Time of Update: 2018-12-06
reinterpret_cast 用法:reinpreter_cast<type-id> (expression)type-id必須是一個指標、引用、算術類型、函數指標或者成員指標。 可以轉換任意一個32bit整數,包括所有的指標和整數。可以把任何整數轉成指標,也可以把任何指標轉成整數,以及把指標轉化為任意類型的指標,威力最為強大!但不能將非32bit的執行個體轉成指標。總之,只要是32bit的東東,怎麼轉都行!
Time of Update: 2018-12-06
這學期學了電腦學院王彥老師的電腦安全概論,算是一門入門級的課程,但是自己還是長了很多的見識的,學到緩衝區溢位攻擊的時候,突然想到自己拖了很久的一件事情,就是好好的總結和學習一下C語言緩衝區的問題。時間過了這麼久,真是有些慚愧了。這篇博文應該算是入門級的了,歡迎大家指教。
Time of Update: 2018-12-06
接著上節講資料結構中的樹,要理解樹,最重要的是要理解:二叉排序樹、平衡二叉樹和紅/黑樹狀結構。今天就來討論這幾種樹。二叉排序樹
Time of Update: 2018-12-06
Time of Update: 2018-12-06
今天討論下C/C++的幾個覺問題。內聯(inline)函數 提到內嵌函式,先看下面兩個程式,程式的執行結界都是為了得到兩個值相加之和://程式1int add(int x,int y){return x+y;}int main(int argc,char* argv[]){int a=1,b=2,c; c=add(a,b); //通過調用函數的形式得到相加結果 return 0;}//程式2int main(int argc,int argv[
Time of Update: 2018-12-06
我們都知道C++語言相容C語言,那麼C++調用C語言庫,為什麼為什麼需要 extern "C"的協助?答案就是C++語言為了支援重構(重構的特徵:相同的範圍、相同的名字、不同的參數),在編譯時間對函數的命名方式進行了改變,編譯後的名字包括一些參數的資訊,這樣才能在調用函數的時候對號入座。 那麼extern
Time of Update: 2018-12-06
Mutable (1)mutable的意思是“可變的,易變的”,跟C++中的const是反義詞。(2)在C++中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在一個const函數中執行個體說明:#include <iostream>using namespace std;class TestMutable{public: TestMutable(){i=0;}int Output() const
Time of Update: 2018-12-06
1、引用和指標的區別 1.1 引用不能為NULL 1.2 引用必須要初始化 1.3 引用初始化後,不可指向其他對象 1.4 作為參數傳遞的時候,不會生產形參。返回引用的時候,不會產生臨時變數。 const 指標也有可能產生野指標。 引用具有指標的效率,也具有方便性和直觀性。 2、區別函數重載可以是 參數類型(整形、實型、字元型等) 參數個數 但不能是傳回型別3、C++和C定義結構的分別是什麼。
Time of Update: 2018-12-06
1.C++中的時間:(1) time_t其實是一個64位的long int類型(2) time函數:函數簡介: 函數名: time 標頭檔: time.h 函數原型:time_t time(time_t *timer) 功能: 擷取當前的系統時間,返回的結果是一個time_t類型,其實就是一個大整數,其值表示從CUT(Coordinated Universal
Time of Update: 2018-12-06
1.C#與.net的關係 C#是一種獨立的語言,它是用於產生面向.NET環境的代碼,感覺說了等於沒說。但它本身不是.net的一部分。.net支援的一些特性,C#並不支援。而C#語言支援的另一些特性,.net卻不支援。C#語言是和.NET一起使用的,所以如果要使用C#高效地開發應用程式,理解Framework就非常重要.2.CLR, IL,
Time of Update: 2018-12-06
舊式的C轉型方式,幾乎允許你將任何類型轉換為任何其它類型,有其自身的缺陷,表現在以下兩方面:不能更精確地指明其轉型的意圖。如將一個pointer-to-base-class-object
Time of Update: 2018-12-06
string是參考型別,但具有恒等性(其值不能被修改)。CLR的有駐留機制(堆上保留有散列表),但不適用於動態建立的string,例如string st1 = ""; string st3 = st1 + "Test"; string st2=""+"Test"; st2和st3已經是兩個不同的對象了。
Time of Update: 2018-12-06
我們定義了一個類,裡面有很多方法,我們調用的其中某個方法,如何確定調用了哪些方法呢?首先,我們知道函數尋找的順序如下:1)尋找函數的名字2)從中找出首選。3)檢查是否具有該函數的存取權限4)實參相依原則:根據實參的類型,自動進入相應的命名空間、類內部進行尋找。增加一條:衍生類別成員按名字隱藏掉基類成員class Base {public: virtual void f(int x);};class Derived: public Base {public: virtual void
Time of Update: 2018-12-06
與緩衝區相關的操作的常見的使我們的字元的輸入輸出操作,其實在接觸過作業系統和編譯原理之後,感覺電腦其實就是在處理一串又一串的字串。今天給大家介紹get家族的幾個函數。 很多最初使用C語言進行字串操作,並且認識到緩衝區問題的一般都是從類似下面的程式開始的:
Time of Update: 2018-12-06
結構(struct)就是一種把一些資料項目組合在一起的資料結構,其他語言把它稱做為記錄(record)。文法為將需要組合的內容放在花括弧中,前面加上一個關鍵字struct,如下:struct {內容...};1. 怎樣定義結構體變數:舉個具體的例子,如將在校學生的資訊定義為一個結構體,資訊內容包括學生的姓名(string)、學號(long)、年齡(int)等,就可以聲明如下:struct {char sName[10];long sNo;int
Time of Update: 2018-12-06
先看下面幾個問題,如果你能準確地回答,那麼此篇文章將不適合你:電腦中怎樣表示浮點數的,與整型的表示方法有什麼不同?32位精度的float類型和64位精度的double類型能表示浮點數最大範圍是多少?該C語言語句 printf("%d\n", 2.5);
Time of Update: 2018-12-06
前幾天,我看到一個關於程式設計語言的調查,我發現到目前為止,C 程式設計語言在全球開發人員中仍然穩居前三。如此多的代碼使用C來編寫,我想分享我多年學習總結的一些好的C語言編程實踐。不要使用gets()和strcpy()再也不要使用諸如gets()、strcpy()、sprintf()等等這些函數,這已經是一個廣為人知的一個事實,但這些函數仍然在庫中,以用來支援那些已經使用這些函數的代碼。如果你使用man手冊關於gets()的說明,會發現:Never use gets(). Because it
Time of Update: 2018-12-06
儲存類型可以用於變數以及較小範圍的函數和形式參數的說明。現在集中討論變數的儲存類型。 回顧一下以前的內容,塊(block)表示函數體(花括弧包括的部分)或者複合陳述式(可能包含聲明)。在C99中,選擇語句(if 和 switch)、迴圈語句(while、do和for)以及它們所控制的“內容”語句也被視為塊,儘管本質上有一些差別。 變數的性質:
Time of Update: 2018-12-06
本想部落格以每周一篇的速度更新,卻未曾料到最近幾周忙到了沒有時間坐下來寫點東西的程度。 而這一篇,也因為寫得較為匆忙,望您指出疏漏之處。 至於本文參考,可能部分來自於EC中的某個條款,並適當地加以補充。 在C++中,為基本類型定義操作符是最常見的任務。例如為一個自訂類型提供比較操作符,以允許其作為STL容器set的元素類型。在本文中,我們不討論定義操作符的各種文法,而是簡單介紹定義操作符過程中需要注意的一些問題。 首先需要明確的就是操作符的好處。相較於成員函數,操作符擁有更強的語義
Time of Update: 2018-12-06
For each pair of integers A B and C ( -2^31 <= A, B, C<= 2^31-1 ), Output the result of A+B+C on a single line.Sample Input1 2 33 4 3Sample Output610 我為什麼要把這個題給貼出來,因為這個題讓我沒能成為一個ACMer....