1、空指標:int *p=0;
空指標中,在c中指null,但c++中指的是0。因此,在c++中判斷是否空指標,與0比較即可。
2、char *p="abc"; 在常量區
char p="abc「;在棧區
3、與()同級,比*高。
const int a=3; 最終的內容是常量
const int *p=&a; 指向常量內容的指標, 指向常量的指標:常量指標
int *const p=&a; 指標是常量(const p) ,指標常量仍是指標,但指標是常量,指標不能變化
const int *const p=&a; 指向常量的常量指標。指標本身是常量,指向的內容也是常量,前後夾擊,一點都不能改變。
4、指標陣列: *a[10] 先p 是陣列,再*由指標組成。指標陣列:由指標構成的陣列。
陣列指標:(*a)[10] 與(()同級,左向右,先()故是指標,再陣列。陣列指標:即指向乙個陣列的指標。
5、陣列與指標
特別注意的是,三維陣列指標,對於a[3][4][4],其中的a[2][2][2]從順序上來說在a+2x3+2x4+2處,但是從型別上來說c++檢查得十分嚴格。
比如a[2][2][2],用指標表示為:*(*(*(a+2)+2)+2) 二縱高,二橫行,二橫列上
但若*(a+2x3+2x4+2)則只是表示是*(a+16)縱高處的第乙個元素的位址。
6、string是c++,是相容c的c++,主要函式有:
strcat(char *p,const char* p2)
strcat(char *p1,const char* p2,unsigned int len2)
char name[50]="bing";
char surname[ ]="crosby";
strcat(name," ");
strcat(name,surname);//必須測定name是否容納下surname,sizeof(name)/sizeof(name[0] > strlen(name) +strlen(surname)
還有複製:strcpy()、比較strcmp( )、搜尋strchr( )
7、堆(heap)棧(stack)
除了靜態變數在特殊的一小塊記憶體(最低位址)外,就是堆(稍高於靜態位址),然後再是棧(最高位址),堆是由低到高進行分配,棧是由高到低進行分配。
因此兩都都是面向進行分配。
平時的基本資料型別是在棧中,當用new時,就在堆中進行分配。用delete就是釋放堆中的空間(本身所指的位址並沒變化)。
int *p=new int(3);
cout cout
8、動態分配陣列應注意的事項: 1、刪除時,應加空方括號: int *p=new int[100]; //不能初始化 delete [ ] p; 2、動態分配不能直接初始化只能顯示的初始化。 9、動態分配的毛病:記憶體洩露和記憶體碎片 一、記憶體洩露: 當動態分配後,沒有釋放,但這個指標就改變了方向。而堆中原分配的記憶體已經「標記」上占用,造成這部分記憶體無法釋放。 當動態分配後,由於過了作用域,這個指標「消亡」了,同樣分配的記憶體仍然在占用無法釋放。 二、記憶體碎片 在動態分配中,有些不斷在分配,有些不斷在釋放,造成堆中的記憶體區域並不是連續的占用,這就是碎片,與磁碟碎片一樣。 唯一不同的是,當再次分配乙個大的記憶體塊時,它只能選取能連續容納的記憶體塊,如果分配不出這個記憶體塊,就會分配失敗。 10、reinterpret_case《型別》(表示式) 強制轉換成任意型別。因此很危險的操作,比如把指標強制轉為整形,把整形強制轉換成指標。 reinterpret:重新解釋 interpret:解釋 vs2005資料窗體嚮導 以前在vs2003裡,直接用資料窗體嚮導生成資料繫結窗體。但在vs2005裡卻找不到了,是不是vs2005上面就沒有了啊?其實vs2005上肯定是有的,就讓我們來做個小例項吧 首先新建乙個專案 1 開啟 資料來源視窗 單擊 資料 選單上的 顯示資料來源 圖一 以顯示資料視窗... 嚮導類似於彈窗,用於接收使用者的輸入,然後作出相應的處理。class xxwizard models.transientmodel 要點1 使用瞬態模型 name xx.wizard order id asc 字段 fields.型別 u 欄位名 要點2 這些欄位在彈窗中由使用者賦值 api.mod... 經常在csdn社群上看到有人提出怎樣把資料庫中的資料匯出到excel中,一般人總是在資料庫分析器中複製到資料後,ctrl v到excel中,但效果不理想,有些資料如0001到excel中就成了1,有時還會出現換行的效果,極不美觀.其實在excel中有乙個工具是技持從其他資料來源中引入資料的,當資料來...VS2005資料窗體嚮導
Odoo中的嚮導
資料庫匯出到EXCEL嚮導