Time of Update: 2018-12-04
前些天有個朋友問我,要不要去讀讀《Effective C++》,我忽然給出一個建議:不要讀,最多看一下目錄就好了。作為一本非常受歡迎的C++教材,我為什麼要建議朋友不要讀呢?事後我反思了一下我的想法:《Effective
Time of Update: 2018-12-04
沒有什麼比signed和unsigned的區別更無味了。unsinged資料類型似乎沒有存在的必要。一、unsigned可以提供更大的正數範圍 反對:對於小資料來說,signed的範圍就足夠了;對於大資料來說,signed和unsigned所提供的範圍其實幾乎沒什麼區別。Int8,Int16, Int32,
Time of Update: 2018-12-04
在內嵌彙編中,可以將C語言運算式指定為彙編指令的運算元,而且不用去管如何將C語言運算式的值讀入哪個寄存器,以及如何將計算結果寫回C 變數,你只要告訴程式中C語言運算式與彙編指令運算元之間的對應關係即可, GCC會自動插入程式碼完成必要的操作。 1、簡單的內嵌彙編 例: __asm__
Time of Update: 2018-12-04
c語言面試題-----指標篇 收藏 1. char * const p; char const * p const char *p 上述三個有什麼區別? char * const p; //常量指標,p的值不可以修改 char const * p;//指向常量的指標,指向的常量值不可以改 const char *p; //和char const *p------------------------------------------------------2. char
Time of Update: 2018-12-04
1. 定義const對象const 把一個對象轉換成一個常量: const int bufSize = 512;定義bufSize為常量並初始化為512. 因為常量在定義後就不能修改,所以定義時必須初始化。 2 const 引用 const int ival = 1024;const int &refVal = ival;const 引用可以綁定到不同但相關的類型的對象或綁定到右值int i=42; double dval = 3.14;const int &r =
Time of Update: 2018-12-04
物件導向的語言裡面,出現了類的概念。這是編程思想的一種進化。所謂類:是對特定資料的特定操作的集合體。所以說類包含了兩個範疇:資料和操作。而C語言中的struct僅僅是資料的集合。(liyuming1978@163.com) 1.執行個體:下面先從一個小例子看起 #ifndef C_Class #define C_Class struct#endif C_Class A { C_Class A *A_this; void (*Foo)(C_Class A
Time of Update: 2018-12-04
MCI_OPEN_PARMS是一結構體類型,其結構體定義為 typedef struct { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID;//設別ID LPCTSTR lpstrDeviceType;//裝置類型 LPCTSTR lpstrElementName;//檔案名稱 LPCTSTR lpstrAlias;//別名} MCI_OPEN_PARMS; 結構體成員具體為:dwCallback The low-
Time of Update: 2018-12-04
在C語言中有待用資料類型,聲明一個待用資料類型意味著:該變數的生存周期是靜態,即在程式的開始即分配到程式,終止時才釋放。在C++中,聲明一個類的待用資料成員意味著所有的執行個體只有該資料成員的一個拷貝。 《深入淺出MFC》這樣解釋: Static 成員不屬於對象的一部分,而是類的一部分。所以程式可以在沒有誕生分和 對象的時候就處理此種成員變數.但必須首先初始化它。
Time of Update: 2018-12-04
文章目錄 但這個問題在C#中可就是個大問題了啊.那針對問題2,C#咋整呢?
Time of Update: 2018-12-04
文章目錄 C#中沒有預設實參 函數傳回值我們定義函數時會指定一個傳回值類型,那在函數體中必須返回一個匹配的類型,或者隱式轉換後能匹配的類型.不過有時存在這樣的情況,如果函數體中存在一些分支語句,有些情況是可以返回一個值,但有時不會傳回值.還是舉個例子吧.有如下C++函數int FunArwen(int a , int b){if(a < b) return 888;}很顯然,上面的函數有時會返回一個值,但有時又不會.int
Time of Update: 2018-12-04
文章目錄 好處注意事項
Time of Update: 2018-12-04
我們知道當執行個體化一個類時,也就是產生一個對象時需要分配記憶體空間.那一個對象具體需要多少位元組的記憶體空間? 通過些什麼規則計算出來的? 假如有如下一個類------------------------------------------------------------------------------------------------------------------------------類聲明Arwen.hclass
Time of Update: 2018-12-04
文章目錄 C++標頭檔作用,為什麼C#不需要標頭檔. 原始碼的翻譯簡介我們知道機器其實是比較笨的,它只認識0101這樣的機器語言.你用進階語言寫的原始碼對機器來說就像地球人看火星文一樣,沒法整明白的.必須要經過中間很多翻譯環節.通常來說分為如下四步,實際上每一步都相當於在做翻譯中的一小部分工作.1.先行編譯階段,也叫預先處理.顧名思義就是在處理之前預先做些準備工作.比如你寫的#include
Time of Update: 2018-12-04
文章目錄 C++中常用預先處理指令1.include引用標頭檔2.條件編譯3.#define定義宏4.#progma 常用預先處理指令 C++中常用預先處理指令前面講了主要有四種1.include引用標頭檔 2.條件編譯#define #ifdef等 3.#define定義宏 4.progma 1.include引用標頭檔我們經常會看到#include "ABC.h" 和#include <iostream>這樣的寫法.
Time of Update: 2018-12-04
文章目錄 6.TODO 注釋 C++編碼規範(1):代碼注釋C++編碼規範(2):命名規範 當你閱讀別人的代碼時如果沒有注釋那會是件比較痛苦的事.一說到注釋我們馬上想到是通過//或/*
Time of Update: 2018-12-04
我們知道如果不希望改變某個變數的值就用const修飾它,讓它變為常量.基本類型和指標類型都能用const來修飾.數組也可以用const來修飾.那你自然要問我們把class執行個體化成一個對象後,如果不希望修改對象中的成員變數,讓對象變得像個常量一樣該咋整呢?你首先自然會想到把類中所有的成員變數都用const修飾不就得了.其實這確實是個辦法拉,但是如果我們只是想某個類的一個執行個體對象弄得像常量啊.你這樣用const整就真成了常量了,所有類的執行個體都只能當常量來處理了.這顯然不行拉.其實很簡單,
Time of Update: 2018-12-04
文章目錄 強型別與弱類型語言隱式轉換新式強制類型轉換方式C#強制類型轉換 強型別與弱類型語言像C++,C,Java,C#這些主流的程式設計語言都是強型別語言.而一些指令碼語言則是弱類型的,比如vbscript , javascript.1.強型別語言簡單的理解就是當定義了一個變數之後就會指定一個固定的類型,並對應一個固定的記憶體塊大小.比如有int , double
Time of Update: 2018-12-04
地球人都知道物件導向的三個主要特徵是封裝,繼承,多態.前面兩個概念顧名思義,比較容易理解,封裝就是所有的東東都給封裝到一個個的class中,並通過public,private等存取修飾詞提供一些許可權控制.繼承嘛就是子類能擁有父類的非私人的成員變數和函數,就像你能繼承你老子的財產一樣啊.多態光看名字可不好理解,可沒變態那麼通俗易懂啊.其實前面說的三個特性還有另外的版本,比如:資料抽象,繼承,動態綁定.說法不一樣但表示的意思完全一樣.
Time of Update: 2018-12-04
文章目錄 C++ 基礎資料型別 (Elementary Data Type)C#基礎資料型別 (Elementary Data Type) 1.類型系統簡介我們認識事務時總喜歡先分個類,然後研究每個各類的特性.在程式設計語言裡面把也會把所有基本內容分門別類.你首先想到的自然是int,long等基礎資料型別 (Elementary Data
Time of Update: 2018-12-04
下面通過C++代碼實現單鏈表的如下簡單操作viod Add(T val); //在鏈表尾部添加元素bool InsertAt(int pos, T val); //在索引為pos的位置插入元素valbool Remove(); //刪除鏈表尾部元素boo RemoveAt(int pos); //刪除任意指定索引所在元素 T GetHeadVal(); //返回鏈表頭部元素的值T GetTailVal(); //尾部元素的值int Find(T val);