C 資料指標( )

2022-09-08 05:06:07 字數 1969 閱讀 3636

指標,在c/c++語言中一直是很受寵的;幾乎找不到乙個不使用指標的c/c++應用。用於儲存資料和程式的位址,這是指標的基本功能。用於指向整型數, 用整數指標(int*);指向浮點數用浮點數指標(float*);指向結構,用對應的結構指標(struct *** *);指向任意位址,用無型別指標(void*)。

有時候,我們需要一些通用的指標。在c語言當中,(void*) 可以代表一切;但是在c++中,我們還有一些比較特殊的指標,無法用(void*)來表示。事實上,在c++中,想找到乙個通用的指標,特別是通用的函式指標簡直是乙個「不可能任務」。

c++是一種靜態型別的語言,型別安全在c++中舉足輕重。在c語言中,你可以用void*來指向一切;但在c++中,void*並不能指向一切,就算能,也失去了型別安全的意義了。型別安全往往能幫我們找出程式中潛在的一些bug。

下面我們來**一下,c++中如何儲存各種型別資料的指標。

c++指標** (一)資料指標

沐楓網誌

1.  資料指標

資料指標分為兩種:常規資料指標和成員資料指標

1.1 常規資料指標

這個不用說明了,和c語言一樣,定義、賦值是很簡單明瞭的。常見的有:int*, double* 等等。

如:int

value 

=123

;int

*pn =&

value;

1.2 成員資料指標

有如下的結構:

struct

mystruct

;現在有乙個結構物件:

mystruct me;

mystruct* pme = &me;

int*

pvalue =&

me.value;//或

int*

pvalue = &pme->value;

當然了,這個指標仍然是屬於第一種範籌----常規資料指標。

好了,我們現在需要一種指標,它指向mystruct中的任一資料成員,那麼它應該是這樣的子:

intmystruct::

*pmv =&

mystruct::value;//或

intmystruct::

*pmk =&

mystruct::key;

intvalue 

=pme

->*

pmv; 

//取得pme的value成員資料。

intkey

=me.

*pmk; 

//取得me的key成員資料。

那麼,在什麼場合下會使用到成員資料指標呢?

確實,成員指標本來就不是一種很常用的指標。不過,在某些時候還是很有用處的。我們先來看看下面的乙個函式:

intsum(mystruct* objs, 

intmystruct::

*pm, 

intcount)

這個函式的功能是什麼,你能看明白嗎?它的功能就是,給定count個mystruct結構的指標,計算出給定成員資料的總和。有點拗口對吧?看看下面的程式,你也許就明白了:

mystruct me[

10] 

=,,,,,,,,,

};int

sum_value 

=sum(me, 

&mystruct::value, 

10);

//計算10個mystruct結構的value成員的總和: sum_value 值 為 110     (2+4+6+8+

+20)

intsum_key 

=sum(me, 

&mystruct::key, 

10);

//計算10個mystruct結構的key成員的總和:   sum_key 值 為 100       (1+3+5+7+

+19)

也許,你覺得用常規指標也可以做到,而且更易懂。ok,沒問題:

intsum(mystruct* objs, 

intcount)

C語言指標高階部分 void指標和資料指標

void指標 資料指標 void指標 void指標的基本概念 void的意思就是 無型別 void指標則為 無型別指標 void指標可以指向任何型別的資料。所以void指標一般被稱為通用指標或者泛指針,或者叫做萬能指標定義形式 void p 在c語言中在任何時候都可以用void型別的指標來代替其他型...

C語言指標高階部分 void指標和資料指標

概念 void指標 資料指標 void指標 void指標的基本概念 void的意思就是 無型別 void指標則為 無型別指標 void指標可以指向任何型別的資料。所以void指標一般被稱為通用指標或者泛指針,或者叫做萬能指標 void的意思就是 無型別 void指標則為 無型別指標 void指標可以...

感悟《C和指標》 3 資料

所有的程式都對資料進行操作,本章對資料的各個方面進行了描述。特別是變數的三大屬性 變數的作用域 鏈結屬性和儲存型別決定了變數的 可視性 和 生命期 1.基本資料型別 c語言的基本資料型別包括整型 浮點 指標和聚合型別。1 整型家族。整型家族包括字元 char 短整型 short int 整型 int...