vi編輯器中怎樣用新的字符串代替所有的舊字符串

1.常量指針(常指針)

int* const p

特點是指針指向的數值可以改變,然而指針所保存的地址卻不可以改變

 

#include <iostream>
using namespace std;

void main()
{

 int a = 10;
 int const *p = &a;
 cout<<a<<endl;
 cout<<*p<<endl;
    int b = 20;
}

我們可以改變指針變量p所指向的內容,而不能改變p的地址空間,如 添加上p = &b;我們就會發現編譯錯誤!

2.指針常量

const int*p

特點是指針所保存的地址可以改變,然而指針所指向的值卻不可以改變。同理,當添加*p = b時,會發生編譯錯誤!

3.指向常量的常指針

const int const*p

特點是指針所保存的地址不可變,指針所指向的數值也不可變

4.空指針

顧名思義,就是保存地址爲空的指針

int *p=0;   //此時的指針p就是一個空指針

5.內存泄露

int *p=new int;

p=new int;

delete p;        //用delete來釋放剛剛申請的那塊內存區域,注意此時指針p還是可能依舊指向的這塊區域(注意可能二字)。

這樣就會有內存丟失,也就是所謂的內存泄漏。

因爲第一行我們在堆中申請了一塊int型的區域,並且用指針p指向該空間。但是緊接着我們又在堆中申請了一塊int型的區域,用p指向了該空間。

那麼先前申請的那塊區域就無法訪問了,但同時這塊無法訪問的區域沒有被刪除。所以就造成了內存泄漏。

6.迷途指針

int *p=new int;   //在堆中申請一塊區域,用p指向這塊區域

所以此時指針p的指向地址具有不確定性,故而稱作迷途指針,避免的方法是將指針初始化爲空指針。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章