原创 數組指針 與指針數組

1、數組指針(指向數組的指針) (1)數組在內存中的表示 創建一個數組就是在內存裏面開闢一塊連續的空間,比如int a[4];就是在內存裏面開闢了一個大小爲4*sizeof(int)字節的內存空間。二維數組是特殊的一維數組。 先來看一

原创 const

 const用法主要是防止定義的對象再次被修改,定義對象變量時要初始化變量   下面我就介紹一下幾種常見的用法 1.用於定義常量變量,這樣這個變量在後面就不可以再被修改  const int Val = 10;  //Val = 20;

原创 創建二叉樹以及 前序、中序、後序遍歷二叉樹

用遞歸方法建立二叉樹 分類:數據結構與算法2012-11-01 20:20 3961人閱讀 評論(6)收藏 舉報         假設二叉樹爲:                                         a

原创 指針與數組的區別

1   聲明一個數組時,其數組名字也是一個指針,指向數組第一個元素 2   數組作爲函數參數傳遞時,自動退化爲同類型的指針 C++/C程序中,指針和數組在不少地方可以相互替換着用,讓人產生一種錯覺,以爲兩者是等價的。     數組

原创 new/delete 與malloc/free的區別與聯繫

一、基本概念      malloc/free: 1、函數原型及說明:       void *malloc(long NumBytes):該函數分配了NumBytes個字節,並返回了指向這塊內存的指針。如果分配失敗,則返回一個空指針(N

原创 Next Permutation

#include <iostream> #include <vector> using namespace std; //分析:觀察數列,遞減數列找不到比它大的數列(直接跳到4), // 所以要找到兩個遞增的元素, 即從右到左找到第一個左

原创 內存分配

一、內存 1 主調函數中分配的內存可以在被調函數中使用 2 被調函數在棧區分配的內存(臨時變量)不可以在主調函數中使用 char * getstr() {     char buf[30];     strcpy(buf, "abcde

原创 c++函數初探

一、遞歸: 直接或間接的在函數體中調用函數自己的現象 1 數學中的遞推式與函數遞歸    遞推:有首項順序迭代求每一項      (順序)    函數遞歸:由第n項求第n-1項...向前逆序迭代求每一項   (逆序)   點贊

原创 初探淺拷貝與深拷貝

對深拷貝與淺拷貝的再次理解     記得11年底找工作的時候,面試時曾經遇到有面試官問的對深拷貝與淺拷貝的理解,那時候自己回來查了資料,寫了篇博客,感覺自己理解了,其實理解的不深刻,最近在調試bug的時候,再次遇到深拷貝與淺拷貝,認真分析

原创 static 變量

static用法小結 static關鍵字是C, C++中都存在的關鍵字, 它主要有三種使用方式, 其中前兩種只指在C語言中使用, 第三種在C++中使用(C,C++中具體細微操作不盡相同, 本文以C++爲準). (1)局部靜態變量 (2

原创 strcpy 與memcpy

strcpy和memcpy的區別 strcpy和memcpy都是標準C庫函數,它們有下面的特點。 strcpy提供了字符串的複製。即strcpy只用於字符串複製,並且它不僅複製字符串內容之外,還會複製字符串的結束符。 已知strcpy函

原创 c++ 封裝 繼承 多態

C++封裝繼承多態總結 面向對象的三個基本特徵 面向對象的三個基本特徵是:封裝、繼承、多態。其中,封裝可以隱藏實現細節,使得代碼模塊化;繼承可以擴展已存在的代碼模塊(類);它們的目的都是爲了——代碼重用。而多態則是爲了實現另一個目的——接

原创 遞歸調用效率問題,遞歸與循環比較

1.所謂的遞歸慢到底是什麼原因呢? 大家都知道遞歸的實現是通過調用函數本身,函數調用的時候,每次調用時要做地址保存,參數傳遞等,這是通過一個遞歸工作棧實現的。具體是每次調用函數本身要保存的內容包括:局部變量、形參、調用函數地址、返回值。那

原创 構造函數初探

 1 note: c++  類成員變量初始化順序與其在聲明中的順序有關,而與在構造函數初始化列表順序無關。     C++類構造函數初始化列表 構造函數初始化列表以一個冒號開始,接着是以逗號分隔的數據成員列表,每個數據成員後面跟

原创 直接插入排序

直接插入排序基本思想 1、基本思想      假設待排序的記錄存放在數組R[1..n]中。初始時,R[1]自成1個有序區,無序區爲R[2..n]。從i=2起直至i=n爲止,依次將R[i]插入當前的有序區R[1..i-1]中,生成含n個記錄