c 類的指標定義,c 指標型別

2023-07-18 04:17:30 字數 6000 閱讀 1515

1樓:藺銘晨焦元

intn=10;

int*p=&n;//不管是c還是c++這句都是對的。

int*p=n;//不管是c還是c++這句都是錯的!型別不匹配。

在不同的地方*表示的含意是有區別的。

當*出現在型別定義時(型別之後的地方),如int*p;那這是告訴編譯器變數p的型別為int型別的指標(int*),所以你還可以這樣寫int*p;或int*p;都是可以的。

而直接出現在變數後(不是定義時),就表示解引用。

int*p;

p=&n;是先定義p為乙個int型的指標,然後讓p等於(指向)整型n的位址。

而int*p=&n;變數p實際上是在定義的同時賦了初值,因此這裡p前面的*是要和型別(也就是int)合起來看,表示p是乙個int型的指標!此時,千萬不要把*和p一起來看!

所以。int*p;//我有意把*寫得和int靠攏一些:),強調int*是一種型別。

p=&n;和。

int*p=&n;

是一回事。就好比:

inti;i=n;

和。inti=n;

是一回事。而*p=*p+6;中p前面的*就是解引用符了。

不要把概念搞混了啊,呵呵!

2樓:守懿巨展

不是,同樣是new可是含義是不一樣的。

對於int*parray

newint;這個的含義是在系統的堆空間上分配為int,也就是4個位元組的空間給parray,這個時候parray裡所指的值是沒有含義的,如你所說沒有定義值。

但是對於intarray

parray

newintarray來說,會激發intarray的建構函式,是否有意義則取決於intarray的建構函式的內容了。

c++指標型別

3樓:茶香悠悠

1. 定義。

型別》* 指標變數》;

型別決定了指向的記憶體空間的大小。

指標變數也是一種變數,有著自己的記憶體空間,該空間上儲存的是另乙個變數的記憶體空間。

可以使用typedef取別名來減少定義變數時的一些麻煩,如typedef int* pointer;

2. 操作。

1)取位址。

int* p; int x; p = x;//p指向x的位址,p的型別是int*, x的型別也是int*

2)間接訪問。

對於一般的指標變數,訪問格式是:*《指標變數》

結構型別的指標變數,訪問格式是:(*指標變數》).結構成員》 或 《指標變數》->結構成員》

3)賦值。任何型別的指標都能賦給void *型別的指標變數,而非void * 型別的指標變數只能接受同型別的賦值。

4)指標運算。

乙個指標加上或減去乙個整型值:《資料型別》* 指標變數》; int a; 《指標變數》+a;可以理解為陣列中下標的變化,《指標變數》 =指標變數》+(a*sizeof(《資料型別》))

兩個同型別的指標相減:結果是整型值,對應的是儲存空間中元素的個數,可用於求陣列的大小。

5)指標的輸出。

非char *型別的指標變數:cout<

c語言指標定義

4樓:黑科技

(1)指標變數定義的格式:

型別識別符號 *變數名; 如:int *point;

注意:在定義int point;的時候 ,加粗部分的。

不是取值符,而是修飾point是乙個指標變數,如何確定point指向什麼型別的變數呢,需要進行下一步:看非加粗部分,int則表示point指向int型別變數或儲存int型別變數的位址。

2)指標變數的初始化,先來看個例項:

說明:表示該變數的型別是乙個指標變數,指標變數名是p1而不是。

p1;如果在同一行定義多個指標變數應該是:int *p1, *p2;而不是int p1, p2或者 int

p1, p2;

給指標變數初始化有兩種方式:

在定義時初始化,如int *p_2 = b;

先定義再初始化,如int *p1; p1 = a;

p1是p1所指向的變數的值;

乙個指標變數只能指向同乙個型別的變數。

3)對於指標變數的兩個運算子「*」與「&」

取位址運算子 //a就代表a的位址(指的是a所在記憶體空間的起始位址)

c語言中指標到底有幾種型別啊?

5樓:蘇蘇蘇良人

列舉和指標型別都不是基本資料型別c語言有五種基本資料型別:字元、整型、單精度實型、雙精度實型和空型別。

儘管這幾種型別資料的長度和範圍隨處理器的型別和c語言編譯程式的實現而異,但以bit為例,整數與cpu字長相等,乙個字元通常為乙個位元組,浮點值的確切格式則根據實現而定c語言還提供了幾種聚合型別(aggregate types)。

包括陣列、指標、結構、共用體(聯合)、位域和列舉除v o i d型別外,基本型別的前面可以有各種修飾符。

修飾符用來改變基本型別的意義,以便更準確地適應各種情況的需求。

6樓:哈迪斯的救贖

首先理解指標的概念就是變數的位址。

所以所有的指標,作為位址,跟計算機操。

作系統的位數有關。

32位作業系統中,所有的指標都是四個位元組。

64位作業系統中,所有的指標都是8個位元組。

指標的型別,跟他所指向的資料結構有關。

基本型別的指標指向基本型別的資料結構。

比如:char * p; int *p; float *p; double *p;

分別指向的是char, int ,float, double 型別的變數。也可以自定義struct型別,那麼指標就指向struct型別的變數。

7樓:研學會

資料有什麼,他就有什麼。

8樓:獨步天下古葉

指標型別:普通指標,陣列指標,字元指標,函式指標……

9樓:馬路上的——甲

實際上指標只有一種。unsigned char*.

指標是乙個記錄記憶體位址的變數。它只能儲存乙個位元組的位址。

不過指標指向的內容可以不同。指標可以指向任何型別。

c語言有多少型別,指標就可以指向多少型別。

c語言指標的概念

10樓:匿名使用者

開闢乙個位址空間。

空間中的內容記錄的是。

另乙個位址。

對他指向的資料進行操作。

和直接對變數操作是乙個意思。

c語言指標詳解

11樓:惠企百科

指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。資料在記憶體中的位址也稱為指標,如果乙個變數儲存了乙份資料的指標,我們就稱它為指標變數。

計算機中所有的資料都必須放在記憶體中,不同型別的資料占用的位元組數不一樣,例如 int 占用 4 個位元組,char 占用 1 個位元組。

為了正確地訪問這些資料,必須為每個位元組都編上號碼,就像門牌號、身份證號一樣,每個位元組的編號是唯一的,根據編號可以準確地找到某個位元組。

c語言用變數來儲存資料,用函式來定義一段可以重複使用的**,它們最終都要放到記憶體中才能供 cpu 使用。資料和**都以二進位制的形式儲存在記憶體中,計算機無法從格式上區分某塊記憶體到底儲存的是資料還是**。

當程式被載入到記憶體後,作業系統會給不同的記憶體塊指定不同的許可權,擁有讀取和執行許可權的記憶體塊就是**,而擁有讀取和寫入許可權(也可能只有讀取許可權)的記憶體塊就是資料。

cpu 只能通過位址來取得記憶體中的**和資料,程式在執行過程中會告知 cpu 要執行的**以及要讀寫的資料的位址。

如果程式不小心出錯,或者開發者有意為之,在 cpu 要寫入資料時給它乙個**區域的位址,就會發生記憶體訪問錯誤。這種記憶體訪問錯誤會被硬體和作業系統攔截,強制程式崩潰,程式設計師沒有挽救的機會。

變數名和函式名為我們提供了方便,讓我們在編寫**的過程中可以使用易於閱讀和理解的英文本串,不用直接面對二進位制位址,那場景簡直讓人崩潰。

需要注意的是,雖然變數名、函式名、字串名和陣列名在本質上是一樣的,它們都是位址的助記符,但在編寫**的過程中,我們認為變數名表示的是資料本身,而函式名、字串名和陣列名表示的是**塊或資料塊的首位址。

c語言指標詳解

12樓:興夏真堵薄

*t=*a

令指標t指向的位址的內容等於指標a指向的位址的內容。

如inti=1,j=2,t=&i,a=&j;,執行*t=*a後,i變為j的值2。

t=a令指標t指向指標a指向的位址。t和a現在指向同一位址。

如inti=1,j=2,t=&i,a=&j;,執行t=a後,t指向j。再執行*t=1則j的值變為1。

c語言指標基本概念及其指標變數的定義是什麼

13樓:景田不是百歲山

指標是常見間接訪問方式.指標就像乙個快捷方式,它指向記憶體的乙個位址,可以通過指標就可以間接的訪問到資料。對於計算機,訪問記憶體的方式有兩種,直接訪問和間接訪問。直接訪問通過就是通過變數名稱去訪問。

指標概念是構成c/c++的重要元素之一,是變數的一種型別,存放的是指定型別資料的位址,而同型別變數存放的是資料。

指標變數:就是乙個變數,其值是可變的,與整形變數、浮點變數等等的命名規則完全相同。 「指標」是概念,「指標變數」是具體實現。

指標型別說明,即定義變數為乙個指標變數; 指標變數名; 變數值(指標)所指向的變數的資料型別。

14樓:有露桑煊

在c語言裡,指標是一組記憶體的頭位址,可以存乙個數,乙個字元,也可以是乙個陣列。

變數,就是像定義乙個整型變數一樣的,定義的是乙個指標型變數。

15樓:鄲濱田伶

指標是乙個其數值為位址的變數(或更一般地說是乙個資料物件)。

存放位址的變數稱為指標變數。指標變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是資料本身,而指標變數存放的是資料的位址。

16樓:韶雅容貴瑋

語言中,指標是一種型別,被稱為「指標型別」。指標型別描述的是乙個位址,這個位址指向記憶體中另外乙個物件的位置。簡單地說,指標表示的是它所指向物件的位址。

1、比較point,*point,&point三者的區別。

對於intpoint;

point:是指標變數的目標變數,即指標指向的那個變數,其內容是資料。

2、指標與陣列。

用指標和陣列名在訪問記憶體中的資料時,他們的表現形式是等價的,因為他們都是位址量。

陣列名表示整個陣列的首位址,可以看作是固定位址的指標,不能被賦值。

陣列名無須賦初值,而指標在使用前必須賦初值。

3、字元指標和字串。

字串是乙個字元陣列,字串以『\0』結束。printf函式的%s格式輸出字元時,是從給定的位址開始,到遇上第乙個『\0』字元時結束。

對字元指標初始化,是將字串的首位址賦給指標。

4、指標型函式。

所謂指標型函式,即返回值是指標(位址)的函式。

5、多級指標。

指向指標的指標(**p)就是二級指標,指向指標的指標的指標(**p)是3級指標。

多級指標類似於間接定址。

6、指向函式的指標。

c語言中的函式名表示函式的首位址,即函式執行的人口位址。

定義形式:[儲存型別][資料型別標示符](*指向函式的指標變數名)()

例子:int(*fun)()指向函式的指標。

intfun();

指標型函式,注意(*

fun)括號不能少。

7、動態指標。

當需要一大片記憶體的時候,最好使用動態分配。

使用malloc函式:void

malloc(size_t

size)。

例子:int

pn=malloc(10*sizeof(int));

double

pd=malloc(10*sizeof(double));

C 指標定義,c 類的指標定義

為了說清楚什麼是指標,必須弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在編譯時就給這個變數分配記憶體單元。系統根據程式中定義的變數型別,分配一定長度的空間。例如,c 編譯系統一般為整型變數分配4個位元組,為單精度浮點型變數分配4個位元組,為字元型變數分配1個位元組。...

c 類的指標定義,c 類物件和指標的區別

吉祥二進位制 c 中的類,本質上就是使用者自定義的一個資料型別,因此它和內建資料型別在使用上有很多相似之處。可以對比內建資料型別來理解。假設有一個test的class。要定義類的指標,如下 test o o 定義test類的物件 o o test p o o 定義一個類的指標,指向o o 與int型...

C指標與C指標有什麼區別,C類的物件和類的指標的區別,指標和引用的區別

c 裡面的指標可以指向物件 動態申請記憶體的時候用new運算子 c語言的指標指向的是記憶體 不懂物件 動態申請記憶體的時候用malloc系列的函式 都一樣,為乙個4或8位元組的變數,儲存乙個位址值 指標都是一樣的,根據個人需要定義 感覺都是一樣的啊 有區別嗎?c 指標與c指標有什麼區別?c 裡面的指...