親c語言中指標的定義和引用以及賦值時候都表

時間 2022-03-27 12:36:50

1樓:只為做題

在c語言中,定義乙個普通的變數(如整型數),我們這樣做:int i; 而定義乙個指標變數(指標)我們需要這樣做:int *p ; 還記得嗎,乙個矩形中的值是有型別的,可能是整型,可能是字元型……,它們原本是「清白」的,無型別的,是我們通過一些手段使它們有了型別。

當我們做出int i; 這樣乙個定義時,編譯器就會分配乙個位址(例如200)並和i 關聯起來,而int將限定編譯器把這個區域中的內容作為整型數看待。

矩形內的值被視為int型

現在我們又有了int *p;這個定義,假設p是指向變數i的(見下圖),p中存的是變數i的位址。* 表示p是乙個指標,而int表示p中所存的位址對應的變數(即變數i)的型別是int。

p指向i , int *p;中的int是指標p所指向的變數的型別

我們將int稱為指標p的基型別,或指標p所指向的變數的型別。

類似地,我們可以有: char *s ; ( s是指向char型變數的指標 )

float *f ; ( f是指向float型變數的指標 )

double *d ; ( d是指向double型變數的指標 )

由此得到宣告乙個指標變數(指標)的一般形式 : 基型別 * 指標名;

有一點要注意,在定義指標時,以下兩種方式都是允許的,例如:

int *ptr1;

int* ptr2;

但一般比較傾向用第一種,因為可以避免以下的誤解:

int* prt1, ptr2;

這樣的定義方式,容易使人誤以為ptr2也是乙個指標,事實上並不是,prt2是乙個int型變數,以下的定義方式中ptr1與ptr2才都是指標:

int* ptr1, *ptr2;

2.指標的運算

<1>.&(address-of operator)取位址操作符:

究竟如何使乙個指標指向乙個變數呢?後面的語句給出了解答:int *p = &i;& 用於取乙個物件的位址(本文說的物件是泛指的某一事物,如變數,陣列等,和c++中的物件概念不同),這裡用於將i的位址賦給p, 那麼指標p就指向了變數i 。

上述的語句也可以分開寫,如:int *p; p = &i;

小擴充套件:(下面大括號中的內容,出涉指標的朋友可以跳過,當然也可以作為擴充套件知識)

<2>.* (dereference operator) 解引用操作符

* 在定義時用來說明乙個變數是指標,而在定義了乙個指標之後,我們使用(引用)指標時,*p表示的是p所指向的物件(即i)。也就是說,對於乙個已定義的指標使用 * 操作符,將訪問這個指標所指向的物件,我們來看下面的程式:

#include

int main()

{int i; /*定義乙個int型變數i*/

int *p;

2樓:c語言二級

063指標的引入和定義

3樓:

指標定義時,如int * p,表示定義了乙個指向int型別的指標變數;

引用時,*p表示取p指向儲存單元的內容;

賦值時,如t = *p,表示將p指向的儲存單元中的內容賦給t。

c語言中定義指標變數時,賦值和賦初值有什麼區別?

4樓:風若遠去何人留

賦初值,也就是初始化,只能在定義的時候操作,形式為type var_name = init_value;

其中=init_value就是賦初值了。

賦值,是在定義後,改變變數的值,形式為

var_name = value;

二者的效果是類似的,都是把變數值改變。但在c語言中,編譯出的**有所區別。其中賦初值的效率會更高。

5樓:空空

char *p="111";和char *p;定義是一樣的,char p="111";和char *p="111";是不一樣的。

char *p;只是宣告乙個指標,

char p;是宣告乙個陣列,相當於const char *p;

6樓:year醫海無邊

指標變數 合法的賦值 只有位址值。

如果填兩個的話

就是位址值和空值 也就是null

很多人說位址值和變數值, 後者 是不對的。

7樓:蕪視壹苆灬

沒什麼區別,就是在開始時給了乙個值!就像int i;i=1;和int i=1;是一樣的!!

c語言中指標的意義是什麼 什麼時候使用

8樓:

指標變數中存放的是目標在記憶體中的位址。所以獨立存在的指標沒有意義,且很

危險;指標只有指向了具體的目標(給它賦了具體的變數、陣列、函式、結構等的位址值)才可用。

指標是語言自身需要的「附加變數」,所以它可用於語言自身的所有合法目標(基本變數、陣列、函式、結構、聯合、指標等,以及它們的各類被修飾的特殊目標)。所以只要目標是合法的,它的指標就是存在的,想用就用!

9樓:匿名使用者

c語言中指標儲存的是記憶體位址

10樓:倪興延燕

簡單地說指標就是指向變數和物件的位址。

指標的用途非常廣泛,比如如果你想通過函式改變乙個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞乙個位址就行,大大提高了效率。

以上還只是指標的初步應用,隨著你在c語言學習上的逐步深入,你會發現更多的用途的。

c語言中指標的概念和用法?

11樓:羽孝姬娟

1.記住一些關鍵字

2.熟練使用輸入輸出

3.學好陣列和指標

指標就是記憶體位址,記住這點很有幫助

12樓:養時芳呼詩

指標好比一把bai鑰匙,原du本你開啟乙個文zhi件只要有這個

dao檔案的位址就行,但為了專安全屬你可以吧檔案的位址放在保險櫃裡,而保險櫃的鑰匙就是指標。指標怎麼用,當然是先定義指標變數,再將乙個儲存區域的位址賦給這個指標變數,如:int

a,*p;p=&a;那麼*p==a了。*是指向的意思

C 語言中指標,C C 語言中指標?

指標是 語言中廣泛使用的一種資料型別。運用指標程式設計是 語言最主要的風格之一。利用指標變數可以表示各種資料結構 能很方便地使用陣列和字串 並能象組合語言一樣處理記憶體位址,從而編出精練而高效的程式。指標極大地豐富了 語言的功能。學習指標是學習 語言中最重要的一環,能否正確理解和使用指標是我們是否掌...

c語言中指標的問題,C語言中指標的問題

s 是乙個變數。乙個變數,通常有兩個部分含義,乙個是變數的型別,其次,才是變數的值。從某種程度上講,變數的型別,要比變數的值還重要。變數型別,決定了變數的處理方式,比如,如何儲存,如何處理。char s是乙個指標變數,可以指向char型別變數的指標變數。這句話有這樣幾層含義。首先,s是指標變數 重點...

指標的定義是什麼,C語言中指標是什麼?

063指標的引入和定義 c語言指標基本概念及其指標變數的定義是什麼 語言中,指標是一種型別,被稱為 指標型別 指標型別描述的是乙個位址,這個位址指向記憶體中另外乙個物件的位置。簡單地說,指標表示的是它所指向物件的位址。1 比較point,point,point三者的區別 對於int point po...

關於c語言中指標變數的問題,關於C語言中指標變數的問題

int a 15,b 99,c 22,d 45 a 15,b 99,c 22,d 45 int p a 變數p指向變數a,p指向的單元的內容 p 是15 int q b 變數q指向變數b,q指向的單元的內容 q 是99 p c 給p指向的單元賦值,而不是給p賦值,由於p指向變數a的單元,則相當於給a...

C語言中指標陣列的問題,c語言關於指標陣列的問題?

這樣看 0x00 0x78,0x99 0x78 h e l l 0 0 0x99 w o r l d 0 其中s就是0x00,然後,s 0 就是 0x00 0 0x00 取內容,得到的值是0x78,然後列印的就是hello s,就是相當於s 0 s 1,因為優先順序關係,先執行s 0 就是 0x78...