標籤:遞迴遞迴就是一個函數在它的函數體內調用它自身。執行遞迴函式將反覆調用其自身,每調用一次就進入新的一層。遞迴函式必須有結束條件。遞迴分為回推和遞推兩個階段,當一直回推,直到遇到牆後返回,這個牆就是結束條件。所以遞迴要有兩個要素,回推牆與遞推關係例題計算n的階乘#include <stdio.h> int factorial(int n){ int result; if (n<0)
標籤: C++類所佔記憶體大小計算說明:筆者的作業系統是32位的。class A {}; sizeof( A ) = ? sizeof( A ) = 1明明是空類,為什麼編譯器說它是1呢? 空類同樣可以執行個體化,每個執行個體在記憶體中都有一個獨一無二的地址,為了達到這個目的,編譯器往往會給一個空類隱含的加一個位元組,這樣空類在執行個體化後在記憶體得到了獨一無二的地址.所以sizeof( A )的大小為1. class B { public: B() {}
標籤:何謂初始化列表與其他函數不同,建構函式除了有名字,參數列表和函數體之外,還可以有初始化列表。初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化欄位。在C++中,struct和class唯一的區別就是struct的所有成員預設都是public的,所以如果不考慮成員的可訪問性,這兩者是沒有區別的,而這裡我們不考慮訪問性的問題,所以下面的代碼都以struct來示範。struct foo{ string name ; int id ; foo(string s,
標籤:微軟的那個臭屁的JOEL(就是寫《JOEL說軟體》的那個牛人)曾說:“每一位軟體開發人員必須、絕對要至少具備UNICODE與字元集知識(沒有任何例外)”,我也常常困擾於字元集的轉換等很多問題,所以這次下決心要把他搞個清楚。有關字元編碼的學習,在這篇blog中,就從兩個程式開始:class TestDataGenerator{ public static void CreateNewTestDataFile(string FileName, int
標籤:使用事件和委託,進程有2個事件OutputDataReceived、ErrorDataReceived可用於重新導向標準輸出和標準錯誤輸出; 需要注意的是InputDataReceived並不是process的事件,所以標準輸入並不可以如此重新導向; 使用前需加上: using System.Diagnostics; //可使用process第一步:確定必要成分 1 Process StartInfostartInfo
標籤:C. Tavas and Pashmaks Tavas is a cheerleader in the new sports competition named "Pashmaks".This competition consists of two part: swimming and then running. People will immediately start running R meters after they finished