c 指標小結

2021-09-10 12:29:25 字數 2167 閱讀 1162

宣告指向特定型別的指標,使用以下格式:

typename *pointername;

示例:

double *pn;   //宣告乙個double型別的指標

char *pc; //宣告乙個char型別的指標

應將記憶體位址賦值給指標,對變數名應用&運算子,來獲得變數位址,或使用new運算子返回未命名的記憶體位址。

示例:

double *pn;

double *pa;

char *pc;

double doub = 3.2;

pn = &doub; //使用&運算子給指標賦值

pc = new char; //使用new給指標賦值

pa = new double[30]; //使用new給指標賦乙個陣列位址值

對指標解除引用意味著獲得指標指向的值。對指標應用解除引用或間接運算子(*)來解除引用。因此,如果pn值指標,則*pn是指標指向的數值。

示例:

char a = 'y';

char *pa = &a; //指標pa指向a的位址

*pa = 's'; //將指標指向的值改為s

cout << a; //輸出s

另一種對指標解除引用的方法是使用陣列表示法,例如,pa[0]和*pa是一樣的。絕對不要對未被初始化未適當位址的指標解除引用。

如果pt是指向int的指標,則*pt不是指向int的指標,而是完全等同於乙個int型別的變數。pt才是指標。

示例:

int *pt = new int;     //宣告乙個指標並初始化

*pt = 5; //*pt 相當乙個int型別的變數,可以直接賦值

在多數情況下,c++將陣列名視為陣列第乙個元素的位址。

如:   int  tacos[10];     //tacos  相當於  &tacos[0]

一般例外情況是,將sizeof運算子用於陣列名時,此時將返回整個陣列的長度(單位為位元組)。

c++允許將指標和整數相加。加1的結果等於在原來位址加上指向的物件占用的總位元組數。還可以乙個指標減去另乙個指標,或得兩個指標的差。後一種運算將得到乙個整數,僅當兩個指標指向同乙個陣列是,這種運算才有意義,這將得到兩個元素的間隔。

示例:

int tacos[10] = ;

int *pt = tacos; //pt指向陣列第乙個元素的位址

pt = pt+1; //pt指向第二個元素位址

int *pe = &tacos[9]; //pe指向第10個元素位址

pe = pe - 1; //pe指向第9個元素位址

int diff = pe - pt; //獲得陣列第9個元素與第2個元素的位址差,將結果儲存在diff中

使用陣列宣告來建立陣列是,採用的是靜態聯翩,即陣列的長度在編譯的時候設定:

int tacos[10];        //使用靜態聯翩,即在編譯時已設定好
使用new 運算子建立陣列是,將採用動態聯翩(動態陣列),即將在執行時為陣列分配空間,其長度也將在執行時設定好。使用完後,應使用delete 釋放其占用的記憶體:

int size;

cin >> size;

int *pz = new int[size]; //向記憶體申請一塊空間

......

delete pz; //釋放記憶體

使用方括號陣列表示法等同於對指標解除引用,陣列名和指標變數都是如此,因此對於指標和陣列名,既可以使用指標表示法,也可以使用陣列表示法。

示例:

int *pt = new int[10];

*pt = 5; //將第乙個元素賦值為5,相當於pt[0]=5;

pt[0] = 6; //相當於*pt = 6;

pt[9] = 7; //相當於*(pt+9) = 7;

int coats[10];

*(coats + 4) = 12; //相當於coats[4] = 12

C指標小結1

c指標小結1 我認為c語言的核心就是指標和對記憶體的操作,而操作記憶體就是由指標實現的,所以說指標真的非常非常重要,在後邊的資料結構的學習中更要用指標,如果你立志要走c系統的開發這條路,那麼你就應當精通指標的各種應用。下面寫一點博主在學習指標時的一點小心得,小體會 僅僅一家之言 在剛學習指標時是真的...

C指標小結3

c指標小結3 現在總結指標的更高一級的用法,其中指向函式的指標在我的博文中已經單獨介紹過了,將會補充介紹幾點,現在介紹別的指標的用法。首先介紹幾個陷阱 int f int f 這兩個宣告都是非法的,如果有人問這兩個宣告什麼意思,我們應當不加思索的說出這是錯誤地宣告,博主就曾經苦苦思考過這兩個宣告的意...

c程式設計 指標小結

1.首先要準確地弄清楚指標的含義。指標就是位址,凡是出現 指標 的地方,都可以用 位址 代替,例如,變數的指標就是變數的位址,指標變數就是位址變數 要區別指標和指標變數。指標就是位址本身,而指標變數是用來存放位址的變數 2.什麼叫 指向 位址就意味著指向,因為通過位址能找到具有該位址的物件。對於指標...