指標的初始化,指標變數的如何初始化?

時間 2022-05-01 12:30:06

1樓:世鑲柳

拜託,這是宣告,不是定義變數,沒有變數,何來初始化?你甚至可以把thecat去掉。

問題補充:

這是函式定義,你前面的是函式宣告。thecat指標變數的初始化是由主調函式完成的,functiontwo函式不必理會,也不應理會,直接拿來用就行。

c語言指標使用前必須初始化??

2樓:匿名使用者

指標申明的時候最好初始化。。初始化以後的指標在一些操作下野會變成野指標,比如:free釋放記憶體以後。。指向被釋放的記憶體的指標也是野指標。。

我理解的野指標就是不可控的,不確定指向的指標都是野指標。

3樓:匿名使用者

指向null就行了。沒有初始化的話,系統會隨機給它分配內容,即隨機指向一塊記憶體,在使用不當的情況下很可能造成一系列問題

4樓:中國洪康

=null初始化 野指標指的是被new出來的指標, 但是沒有delete掉,停留在記憶體裡,有可能印製記憶體崩潰的

5樓:匿名使用者

指向某一變數的位址

比如int b=12,*a=&b;

6樓:匿名使用者

最好初始化

一般都是

p = null;

指標變數的如何初始化?

7樓:太平t道人

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

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

8樓:匿名使用者

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

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

宣告指標

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

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

注意將 指標和引用區分。

9樓:匿名使用者

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

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

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

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

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

10樓:

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

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

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

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

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

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

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

字串指標初始化

11樓:澄壯酆星華

char

*s="china";

等價於char

*s;s="china";

這是兩種賦初值的方法,第一種是在定義的時候賦初值,第二種是先定義,再在以後賦初值,它們的結果都上讓指標s指向首位址,也就是指向了內容的第乙個字母c~~好好看看c語言程式設計那本書~~

12樓:希聲和寡

char *a="china";

等價於char *a;

a="china";

char *a="china";

這個語句的釋義是:

宣告乙個字元指標a,該指標指向常量區字串"china"的首位址而char *a;*a="china";這個是錯誤的,*a標示的是乙個字元值,*a="china";會產生乙個字串資料向致富資料賦值的error

注意區分宣告時的初始化和普通的賦值語句

13樓:似田商堅秉

任何時候,在字串中,編譯器將

\與緊鄰它之後乙個字元連起來解釋,並且只佔乙個char位元組的長度。

\也即樓上所說的轉義符。

你可以試著輸出一行:d:\baidu\http就能體會

14樓:匿名使用者

char*a;*a="china";改為a="china";可以看到a被定義為乙個指標變數,指向字元型資料,注意它只能指向乙個字元變數或其他字元型別資料。

15樓:飄雪在春季

char* a;

a = "china";

16樓:匿名使用者

char* a;

a = "china";

*a表示a指向的乙個字元

17樓:匿名使用者

a="china";

指向類指標如何 初始化

18樓:匿名使用者

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

**示例:

#include

using namespace std;

class test

int get()

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

public:

int a,b;

};int main()

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

19樓:匿名使用者

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

20樓:匿名使用者

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

21樓:搞笑點

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

22樓:幸巴達

cicmian *icmain=null;

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

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

過程大概應該是這樣的

clcmain m;

...icmian *icmain=null;

icmain = &m;

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

23樓:匿名使用者

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

clcmain *lcmain = new clcmain;

或clcmain tmpmain;

clcmain *lcmain = &tmpmain;

24樓:匿名使用者

cicmian *icmain=null;

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

25樓:

clcmian *lcmain;

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

再進行賦值

26樓:燃燒的左眼

cicmaindlg *m_picmaindlg = null;

初始化完畢

指標陣列初始化問題

27樓:千鋒教育

任何指標變數剛被建立時不會自動成為null指標,它的值是隨機的,它會亂指一氣。所以,指標變數在建立的同時應當被初始化,要麼將指標設定為null,要麼讓它指向合法的記憶體。

如何初始化乙個指標陣列

28樓:

int a[5]=

int* pt[5];

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

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

29樓:黃邦勇帥哥哥

什麼意思,你這個不是你說的這種要求的指標,你這種指標表示的是陣列a中的每個元素都是乙個指向int型的指標,要實現你要求的這種功能應該這樣宣告指標int (*p)[5]注意要有括號,這個指標表示的是宣告乙個指標,這個指標指向的是含有5個元素的陣列的位址。因此可以讓指標指向你所要求的這種陣列。

30樓:丶多多

static int a[5][5]=;

int *a[5]=[a[0],a[1],a[2],a[3],a[4]};

31樓:匿名使用者

指標陣列?那就是存位址的嘍,怎麼存數值?

c中指向函式的指標初始化和使用,請教C 中函式型指標和指標型函式的用法和區別,謝謝

牽著你的手 c 指向函式的指標定義方式為 返回型別 指標名 函式引數列表 例如 void p int 是指向一個返回值為void 引數為int型別的函式。而若想定義一個指向類成員函式的函式指標該怎麼定義呢?對成員函式指標的使用。1 非靜態成員函式 定義方式 返回型別 類名 指標名 函式引數列表 例如...

如何將電腦初始化? 10,如何將電腦系統初始化

重灌系統,但其他盤裡的東西還會有。可以重新分割槽,就什麼都沒了。全部格式化,或者把電腦系統重新安裝過,其他的盤全部格式化。重新安裝系統就可以了。如何將電腦系統初始化 電腦太卡想要恢復出廠設定,該怎麼操作?1,啟動電腦,進入windows10系統,點選開始按鈕。2,在開始中點選 設定 點選進入。3,在...

關於C 初始化的問題

程式的執行順序是.先引導程式到記憶體.初始化全域性變數.呼叫main函式 main函式退出 刪除全域性變數 其他收尾工作.所以一般來說是會輸出的.輸出在main函式被呼叫之前.析構函式輸出在main結束以後 之所以加個 一般 是因為cout也是個全域性變數,你不能保證cout在你的q之前被初始化.如...