指向類指標如何初始化,如何初始化一個指標陣列

2022-02-28 09:01:47 字數 3000 閱讀 3843

1樓:匿名使用者

需要定義一個類,然後再把類指標指向這個類的地址,也可以初始化為null,但是null指標只能呼叫不涉及類成員變數的類成員函式。

**示例:

#include

using namespace std;

class test

int get()

test():a(1),b(2){}

public:

int a,b;

};int main()

說明:初始化為null的類指標可以安全的呼叫不涉及類成員變數的類成員函式而不出錯,但是如果類成員函式中呼叫了類成員變數則會出錯,既然賦值為null的情況都可以使用,那麼自然不初始化的類指標同樣滿足這類情況。

2樓:匿名使用者

賦值為null來初始化是沒錯的。錯在你後面的賦值語句中使用的變數,好好檢查下這個變數是不是初始化過了。

3樓:匿名使用者

初始化肯定是null,以後要用時再指向類的例項

4樓:搞笑點

cicmian 是什麼型別,是對話方塊的要看是模態還是非模態的,非模態的要new 完了creat..。如果是視類的話,getactiveview或者取得文件模板再找視類

5樓:幸巴達

cicmian *icmain=null;

這裡你初始化指標為空, 也就是指標不指向任何東西.

下面你再呼叫他的成員肯定就會出錯了.

過程大概應該是這樣的

clcmain m;

...icmian *icmain=null;

icmain = &m;

icmain->m_lamp.setbitmap(icmain->hok);

6樓:匿名使用者

呵呵, 空指標怎麼能直接用呢, 一定要指向實體才行, 如:

clcmain *lcmain = new clcmain;

或clcmain tmpmain;

clcmain *lcmain = &tmpmain;

7樓:匿名使用者

cicmian *icmain=null;

icmain->m_lamp.setbitmap(icmain->hok); //這裡肯定死,icmain沒有例項化,先將icmain指向一個具體的物件

8樓:

clcmian *lcmain;

memset(lcmain,0,sizeof(clcmian)); //分配空間

再進行賦值

9樓:燃燒的左眼

cicmaindlg *m_picmaindlg = null;

初始化完畢

如何初始化一個指標陣列

10樓:兄弟連教育北京總校

int a[5]=

int* pt[5];

for(i=0;i<5;i++)

以上為一個小例子,指標陣列不可以直接賦值,因為指標本質上是一組地回址。但可以通過「答

指向」賦值

指標變數的如何初始化?

11樓:太平t道人

*p=ival 表示*p的內容是ival(可以是個值或是空間)定義的時候可以寫成p=&ival,p的值是ival的地址值oxcdcdcdcd一類的東西;有時候在函式呼叫的時候,今後會用很多,會用到**p,作為指標的形參傳遞

指標容易出錯是 如果p指向一塊找不到的空間,取*p會出錯的,或是p和*p用錯地方了,很容易出錯。只有自己多練,理解指標的原理才會發現其好用的地方。建議你練練單連結串列去掌握指標的基本使用。

12樓:匿名使用者

關於 c/c++指標 是c/c++語言的難點之一至於指標的概念大家都知道 初始化有很多種方式 甚至在很多庫源**中我們可以看到沒有初始化的指標 這是指標的靈活性所至

在應用開發中 指標的使用原則是:

宣告指標

要麼初始化為指向有效地址; 比如: int i; int *pi = &i;

要麼 初始化為指向空地址(即vnullptr) 地址; 比如: int *pi = nullptr; 備註:(關於 nullptr 請查閱 c++ 最新規範,就**中 使用 null)

注意將 指標和引用區分。

13樓:匿名使用者

在int*p=ival中,p就是一個指標,它的值是ival,不過一般不這麼用,不能給指標賦確定的值,還是拿你剛剛的例子,用的最多的是這樣是取地址的符號。

指標可以節省空間,一個指標佔用的大小是確定的4位,而且指標也比較方便,它指向的是資料儲存的地址,指標的實質也是地址。

因為指標一定要指向具體的地址才有效,如果程式一長,就很容易造成指標懸空,或者兩個指標指向同一地址,如果這個時候對它們操作就會造成很多錯誤。

最關鍵的是,指標很容易破壞封閉性,如果你想要資料私有,最好避免指標。

弄不懂也沒關係,指標比較難,我也是花了很久才慢慢想通的。

14樓:

任何變數,都有兩個資訊:一是它所存放的資料,二是它的存放位置(即地址)。地址,在整個記憶體中,都是唯一存在的。沒有重複的兩個地址。

一個變數一經定義(申請)它的地址就已經確定了,是一個常數,不能改變的。而它存放的資料是可以改變的。

指標,本質上,也是一個變數,它也具有這兩方面的資訊:資料、地址。它的地址同樣是固定的,不可修改的。

它的資料比較特殊,存放的是其它變數的地址。同樣,也可以存放其它指標的地址,因為指標也是變數。

指標的賦值,是指給指標存放的資料賦值。所以,這個資料必須是地個地址。

例如:int a; int *p = &a; // 相當於 int *p; p = &a;

再如:int a = ; int *p = a; //這裡a是陣列名,也就是陣列的首地址。

Cintnintpnewint怎樣初始化

new int n 會申 復請一個n個int元素的內製存空間,相當於一個n個int元素的陣列bai,這個值會被賦值給dup i p為int 為元素的陣列,或zhiint 指標,其中p i 為p的第i個元dao素。於是這句話的意思就是,在p的第i個元素分配n個int元素的空間。其後可以使用p i 0 ...

路由器初始化後會怎麼樣 初始化後不用設定引數能直接上網嗎?

裡面的資料會被清空!不能直接上網的,需要設定上網帳號和密碼。初始化即恢復至出廠設定,不會怎麼樣。一般重新設定路由就行了,不用設定引數?那這個路由器 不菲吧?等於是出廠狀態。不能上網。一般的路由都會有設定嚮導的,你自己按著設定就可以了,你買路由也會附帶說明書的。一般把網絡卡設為自動獲取ip就可以了。路由...

C語言野指標就是未初始化的指標麼

未初始化的指標可以稱為野指標 wild pointer 但是野指標並不僅僅是未初始化的指標.一般來說,野指標 dangling pointer,wild pointer 指向的是記憶體中無效的物件,這樣說可能很抽象,比如以下幾個例子.1.如果有一段 如下 char dp null c falls o...