Time of Update: 2018-12-08
在c和c++中,我們知道沒辦法起一個變數名叫int,因為這是C/C++保留的關鍵字,起這麼一個變數名沒辦法區分到底是int類型還是int變數。事實上在C#中也有這麼一條規矩,就是不能起一個變數名是保留的關鍵字。如:在C/C++中,我們是無能為力的,你必須起一個不叫int的,比如加個底線。。當然,C#中也可以這麼幹。@ 今天閱讀《C# 3.0 in a Nutshell, 3rd Edition》才知道,原來還有一種辦法就是加@符號(看了@符號的作用又多了一個):複製代碼 代碼如下:class @
Time of Update: 2018-12-08
浮點數在記憶體中的儲存機制和整型數不同,其有舍入誤差,在電腦中用近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(電腦中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學記號標記法。所以浮點數在運算過程中通常伴隨著因為無法精確表示而進行的近似或舍入。但是這種設計的好處是可以在固定的長度上儲存更大範圍的數。1、將字串轉換為float、double過程存在精度損失,只是float、double各自損失的精度不相同而已std::string str="8.2"
Time of Update: 2018-12-08
拷貝建構函式是C++最基礎的概念之一,大家自認為對拷貝建構函式瞭解嗎?請大家先回答一下三個問題:1. 以下函數哪個是拷貝建構函式,為什麼?X::X(const X&); X::X(X); X::X(X&, int a=1); X::X(X&, int a=1, b=2); 2. 一個類中可以存在多於一個的拷貝建構函式嗎?3. 寫出以下程式段的輸出結果, 並說明為什麼? 如果你都能回答無誤的話,那麼你已經對拷貝建構函式有了相當的瞭解。 #include
Time of Update: 2018-12-08
指向結構體類型變數的使用首先讓我們定義結構體:struct stu{char name[20];long number;float score[4];} ;再定義指向結構體類型變數的指標變數:struct stu *p1, *p2 ;定義指標變數p 1、p 2,分別指向結構體類型變數。引用形式為:指標變數→成員;[例7-2] 對指向結構體類型變數的正確使用。輸入一個結構體類型變數的成員,並輸出。複製代碼 代碼如下:#include <stdlib.h> /*使用m a l l o
Time of Update: 2018-12-08
C#開發Windows應用程式中經常需要去控制系統的音量,分兩種方式:1.使用Win Api控制2.使用C++ dll控制Win Api控制: 使用user32.dll和winmm.dll都可以控制系統音量,區別是Win系統的版本。winmm.dll Xp環境下可用,user32.dll Vista及以上版本。C++ dll控制: CoreAudioApi 是C++ 第三方封裝了音量控制,網上下載DLL後再項目中引用即可使用。CoreAudioApi Vista及以上版本支援。下面給出代碼1
Time of Update: 2018-12-08
計算機在顯示二進位位元時候,如果開頭是0.是不會顯示的,對於在單片機混的人,這個有時候很麻煩,所以寫個小工具.功能就是輸入十進位數字,然後顯示出2進位,每顯示4位一次空格,可以調整位元範圍(8的倍數)如果有誰能知道linux下類似win7的那個計算機,麻煩回複告知一下吧.很是感謝~例如: $ dec2bin 1 135Num 8 Binary is : 0B1000 0111done!===============================$ dec2bin 2 135Num 16
Time of Update: 2018-12-08
自認為C語言還算入門的人,看來還是高估自己了.沒想到在這個地方還有這麼有趣的東西.有些話看來要仔細深究才能真正入門啊....================================================================================複製代碼 代碼如下:#include <stdio.h> int main(void) { int flag=0; for(int j=0; j <2; j++) { if(
Time of Update: 2018-12-08
1: .net framework 由兩個部分組成:CLR 和
Time of Update: 2018-12-08
首先說明:如果沒有進入偵錯模式的話,預設的調試視窗如下:開始前的準備: 建立控制台程式DebugWindowDemo:修改Program.cs 的代碼為:複製代碼 代碼如下:using System;using System.Threading;using System.Threading.Tasks;using System.Diagnostics;class S { public static void Main() { pcount =
Time of Update: 2018-12-08
1.首先解釋一下什麼是方法重載?方法重載是指在同一個類中方法同名,參數不同,調用時根據實參的形式,選擇與他匹配的方法執行操作的一種技術。這裡所說的參數不同是指以下幾種情況:① 參數的類型不同② 參數的個數不同③ 參數的個數相同時他們的先後順序不同注意:系統會認為是同一個方法的兩種情況,這樣的兩個方法不可以在同一個類裡,否則系統會報錯。⑴傳回型別不同,方法名和參數個數、順序、類型都相同的兩個方法⑵傳回型別相同,方法名和參數的個數、順序、類型都相同的兩個方法,但是參數的名字不同例如:複製代碼
Time of Update: 2018-12-08
下面是c++的源碼:複製代碼 代碼如下:class X {public: int i; int j; ~X() {}};void f(X x) { X x1; x.i = 1; x.j = 2;}int main() { f(X());}下面是main函數的彙編碼:複製代碼 代碼如下:_main PROC; 15 : int main() { push ebp mov ebp, esp sub esp, 8;為臨時對象預留8
Time of Update: 2018-12-08
在c++中,如果沒有定義operator=操作,編譯器會提供一個預設的operator=操作。由於operator=操作和拷貝建構函式的功能類似,都執行拷貝操作。因此,編譯器也分提供無用的預設operator=操作和非無用的預設operator=操作。並且什麼時候提供非無用的預設operator=操作和無用的等操作的情形也和拷貝建構函式類似。(詳細分析過程請參考《基於c++中的預設拷貝函數的使用詳解》)對於一個類,編譯器會提供非無用的operator=操作的情形:1
Time of Update: 2018-12-08
c++中,如果沒有為一個類提供解構函式,那麼編譯器會為這個類提供預設的析構的函數。由於解構函式的功能和建構函式相反,因此和預設的建構函式類似,編譯器也會提供無用的預設的解構函式,和非無用的解構函式。兩者的分析情況一樣(對於預設的建構函式分析,請參看《從彙編看c++中預設建構函式的流量分析》)。並且編譯器會提供非無用的預設解構函式情形和預設建構函式類似:1 類含有虛成員函數(類繼承自虛基類或者繼承的基類含有虛成員函數,也屬於這種情況)2
Time of Update: 2018-12-08
複製代碼 代碼如下:private void Value_ByteArray(){double doublevalue = 258.0;Int32 intvalue = 258;string strValue = "258";Int16 int16value = 258;MemoryStream doublemem = new MemoryStream();BinaryWriter doublebyteWR = new
Time of Update: 2018-12-08
這裡首先先講一下金字塔的原理:影像金字塔就是把一個原始影像處理成一個類似於塔狀的影像結構(請不要糾結於這個概念)在影像金字塔中最精細層的解析度為16*16,下一層是8*8,依次為4*4,2*2,1*1如所示:圖中網格頂點表示原始映像16*16;紅色差號代表8*8;黑色圓圈代表4*4.按照上述原理,那麼編程實現不過就是隔點採樣,那麼相鄰兩幅映像在對應點上的灰階值應該相等,當然我是這麼想的。C#在Drawing命名空間下的Bitmap類裡面有一個處理影像金字塔的函數,複製代碼
Time of Update: 2018-12-08
.net 是一種多語言的平台,開發.net 可以用多達幾十種語言進行。 Java 是一種單語言的平台。快速鍵: home 移到本行非空白字元前面 end 移到本行結尾 shift 可以多選擇字元 通過配合home end paUp paDn Ctrl + home 文本開頭 Ctrl + end 文本結尾#region 和 #endregion
Time of Update: 2018-12-08
參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0例如:10100001^00010001=101100000^0=0,0^1=1 0異或任何數=任何數1^0=1,1^1=0 1異或任何數-任何數取反任何數異或自己=把自己置0(1)按位異或可以用來使某些特定的位翻轉,如對數10100001的第2位和第3位翻轉,可以將數與00000110進行按位異或運算。10100001^00000110=10100111 //1010 0001
Time of Update: 2018-12-08
函數重載:在C++程式中,可以將語義、功能相似的幾個函數用同一個名字表示,即函數重載。重載的實現:幾個同名的重載函數仍然是不同的函數,它們是如何區分的呢?我們自然想到函數介面的兩個要素:參數與傳回值。如果同名函數的參數不同(包括類型、順序不同),那麼容易區別出它們是不同的函數。重載與覆蓋成員函數被重載的特徵:(1)相同的範圍(在同一個類中);(2)函數名字相同;(3)參數不同;(4)virtual
Time of Update: 2018-12-08
在c++中,可以為函數提供預設參數,這樣,在調用函數的時候,如果不提供參數,編譯器將為函數提供參數的預設值。下面從彙編看其原理。下面是c++源碼:複製代碼 代碼如下:int add(int a = 1, int b = 2) {//參數a b有預設值 return a + b;}int main() { int c= add();//不提供參數}下面是mian函數裡面的彙編碼:複製代碼 代碼如下:; 4 : int main() { push ebp mov
Time of Update: 2018-12-08
1. C++雖然主要是以C的基礎發展起來的一門新語言,但她不是C的替代品,不是C的升級,C++和C是兄弟關係。沒有誰比誰先進的說法,更重要的一點是C和C++各自的標準委員會是獨立的,最新的C++標準是C++98,最新的C標準是C99。因此也沒有先學C再說C++的說法,也不再(注意這個"不再")有C++文法是C文法的超集的說法。2. C++/CLI 和 C# 是微軟的,它們與C和C++沒有任何關係,雖然部分文法相似。但哪兩種語言不相似呢?都是abc這26個字母。3. 不要使用TC/TC++/BC/