七 資料的嚮導 指標

2021-06-09 01:16:05 字數 1958 閱讀 1209

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資料窗體嚮導

vs2005資料窗體嚮導 以前在vs2003裡,直接用資料窗體嚮導生成資料繫結窗體。但在vs2005裡卻找不到了,是不是vs2005上面就沒有了啊?其實vs2005上肯定是有的,就讓我們來做個小例項吧 首先新建乙個專案 1 開啟 資料來源視窗 單擊 資料 選單上的 顯示資料來源 圖一 以顯示資料視窗...

Odoo中的嚮導

嚮導類似於彈窗,用於接收使用者的輸入,然後作出相應的處理。class xxwizard models.transientmodel 要點1 使用瞬態模型 name xx.wizard order id asc 字段 fields.型別 u 欄位名 要點2 這些欄位在彈窗中由使用者賦值 api.mod...

資料庫匯出到EXCEL嚮導

經常在csdn社群上看到有人提出怎樣把資料庫中的資料匯出到excel中,一般人總是在資料庫分析器中複製到資料後,ctrl v到excel中,但效果不理想,有些資料如0001到excel中就成了1,有時還會出現換行的效果,極不美觀.其實在excel中有乙個工具是技持從其他資料來源中引入資料的,當資料來...