指標「變數裡面的值」和「指標位址的值」和「指標指向的值」有什麼區別

2021-08-11 19:13:50 字數 5390 閱讀 5312

1樓:大野瘦子

一、結果不同

例如:int i=1; //假設i的位址為100,實際位址不是這樣的。

int *p=&i; //假設指標p的位址&p為200

指標變是的值也就是指標的值p,也就是變數i的位址,即100,也就是說p=100,

而指標指向的值,指的是指標所指向的位址100這個記憶體位置,所對應的值,也就是i的值,為1。

二、意思不同

指標變數的值。指的是p本身的值,寫作p,在這裡是a的位址,型別為int型;

指標位址的值,指的是p的位址值,寫作&p,這個位址代表的記憶體,儲存出是p的值,型別為**型,也就是二級指標;

指標指向的值,指的是p值代表的位址上儲存的值,寫作*p,在這裡就是變數a的值,型別為int型。

三、用途不同

變數是可以儲存資料的,但是指標變數與普通變數不同,它用來存放普通變數的位址,即指標變數是用來存放普通變數的指標。指標變數也是乙個變數,在記憶體中也是佔記憶體的,只不過它不存放基本型別資料,而是存放其他基本型別變數的位址。

指標變數的位址用比該指標型別高一級的指標變數來存放指標變數的位址,如二級指標變數存放一級指標變數的位址,**指標變數存放二級變數的位址,依次類推。

2樓:津人依夢

指標「變數裡面的值」存放的是記憶體單元的位址;「指標位址的值」指的是指標的位址值,用「&」表示;「指標指向的值」指的是指標所指向的變數的值,用「*」表示。

指標是程式語言中的乙個物件,直接地對位址進行操作,其的值直接指向存在電腦儲存器中另乙個地方的值。通過位址能找到所需的變數單元,也就是,位址指向該變數單元。由此,位址形象化的被稱為「指標」。

其意是通過它能找到以它為位址的記憶體單元。

指標一般出現在比較接近機器語言的語言,如組合語言或c語言。

擴充套件資料

指標與引用的區別:

一、指標和引用的區別

(1)引用總是指向乙個物件,沒有所謂的 null reference .所有當有可能指向乙個物件也有可能不指向物件則必須使用 指標.

由於c++ 要求 reference 總是指向乙個物件所以 reference要求有初值.

string & rs = string1;

由於沒有所謂的 null reference 所以在使用前不需要進行測試其是否有值,而使用指標則需要測試其的有效性.

(2)指標可以被重新賦值而reference則總是指向最初或地的物件.

(3)必須使用reference的場合. operator 操作符 由於該操作符很特別地必須返回 [能夠被當做assignment 賦值物件] 的東西,所以需要給他返回乙個 reference.

(4)其實引用在函式的引數中使用很經常.

void get***(const int& a) //這樣使用了引用又可以保證不修改被引用的值

3樓:風若遠去何人留

這幾種說法,代表著不同的含義,有著不同的值,以及不同的資料型別。具體說明如下:

int a;//定義乙個變數a。

int *p;//定義乙個指標p。

p=&a; //將a的位址賦值給p。

1、 指標變數的值,指的是p本身的值,寫作p, 在這裡是a的位址,型別為int *型;

2、 指標位址的值,指的是p的位址值,寫作&p, 這個位址代表的記憶體,儲存出是p的值,型別為int **型,也就是二級指標;

3、指標指向的值,指的是p值代表的位址上儲存的值,寫作*p, 在這裡就是變數a的值,型別為int型。

以上三種,都是最常用的指標說明方式,必須要深入理解並靈活掌握,否則很難學好c語言。

4樓:眼眶的濕潤

無論是普通的變數還是指標變數在記憶體中都有乙個位址(如果已經分配好的話)

經過賦制操作,比如說p=&a,指標變數p裡的值是乙個位址,這個位址就是變數a的位址

當然指標變數本身也有乙個位址

指標指向的值就是指標變數的值裡的那個位址所對應的變數的值,也就是a的值,*p等於a。

不知道你理解了沒有?

指標和指標變數有什麼區別呢?

5樓:蓋辜苟

用例子來看一下。

int a=3;

int *p;

p=&a;

現在來看一下。a=3這個式子先解釋一下

等式右邊是常量,左邊是變數。

同理的p=&a,左邊的是指標變數,右邊的是指標

指標的基本概念:為了區別記憶體的不同位置,記憶體被分成位元組,記憶體的全部位元組順序地賦予乙個稱為位址的編號。程式中的變數將在記憶體中佔據一定的記憶體位元組,在這些位元組中儲存的資料資訊稱為變數的內容。

乙個變數佔用連續的若干個記憶體位元組時,最前面的乙個位元組的位址就作為該變數的位址。指標就是記憶體位址,是變數的位址,或函式的入口位址。變數的位址在程式執行時,起著非常重要的作用。

當計算機在計算含有變數的表示式時,計算機按變數的位址取出其內容,並按變數的位址將計算結果存入到變數佔據的記憶體中。

如**:  int x=l;  x=x+2;  其中語句「x=x+2;」中的第乙個x涉及到變數x佔據的記憶體,第二個 x是引用變數 x的內容。該語句的意義是「取x的內容,完成加上2的計算,並將計算結果存入變數x佔據的記憶體中。

」指標變數和它所指向的變數:在c語言中,位址也作為一種值,能被儲存、比較、賦值,並稱位址資料為指標型別,而稱儲存位址值的變數為指標變數,簡稱指標。c程式可用運算子&取變數的位址,如表示式&x的值就是變數x的位址。

程式除能按名引用變數外,也可利用變數的位址引用變數。按變數名引用變數稱為直接引用,而將變數a的位址存於另一變數b中,借助於變數b引用變數a稱為對a的間接引用。

定義指標變數的一般形式為:  型別 * 指標變數名;  或  型別 * 指標變數名=初值表示式;  其中,指標變數名是識別符號,指標變數名之前的符號「*」,表示該變數是指標型別的。而最前面的「型別」,表示該指標變數能指向變數或函式的型別。

初值表示式是乙個位址表示式,如表示式中有某變數的位址表示式,則這個變數應是前面已定義的。

在c語言中,當定義區域性指標變數時,如未給它指定初值,則其值是不確定的。程式在使用它們時,應首先給它們賦值。誤用其值不確定的指標變數間接引用其它變數,會引起意想不到的錯誤。

為明確表示指標變數不指向任何變數,在c語言中用0值表示這種情況,記為null。

如  ip= null;  也稱指標值為0的指標變數為空指標。對於靜態的指標變數,如在定義時未給它指定初值,系統自動給它指定初值0。

指標變數取程式物件的(開始)位址值,不能將乙個整型量或任何其它非位址值賦給乙個指標變數。另外,指標變數對所指向的物件也有型別限制,不能將乙個不能指向的物件的位址賦給指標變數。

如有以下定義:  int i=100,j,*ip,*intpt;  float f,*fp;  以下**如註釋所敘。  ip=&i;/*使ip指向i*/  intpt=ip;/*使intpt指向ip所指變數*/  fp= &f;/*使fp指向正*/  ip=null;/*使 ip不再指向任何變數*/

在電腦科學中,指標(pointer)是程式語言中的乙個物件,利用位址,它的值直接指向(points to)存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為"指標"。

意思是通過它能找到以它為位址的記憶體單元。 在高階語言中,指標有效地取代了在低階語言,如組合語言與機器碼,直接使用通用暫存器的地方,但它可能只適用於合法位址之中。指標參考了儲存器中某個位址,通過被稱為反參考指標的動作,可以取出在那個位址中儲存的值。

作個比喻,假設將電腦儲存器當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是乙個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。

指標是程式語言的乙個重要概念。指標在c程式中有以下多方面的作用:

利用指標能間接引用它所指的物件。

利用各種型別的指標形式引數,能使函式增加描述能力。

指標與陣列結合,使引用陣列元素的形式更加多樣、訪問陣列元素的手段更加靈活。

指標能用來描述資料和資料之間的關係,以便構造複雜的資料結構。當乙個資料a要關聯另乙個資料b時,在資料a中增加乙個指向資料b的指標就可實現資料a關聯資料b。結合系統提供的動態分配儲存設施,又能構造出各種動態資料結構。

6樓:匿名使用者

我們用例子來看一下。

int a=3;

int *p;

p=&a;

現在我們來看一下。a=3這個式子先解釋一下等式右邊是常量,左邊是變數。

同理的p=&a,左邊的是指標變數,右邊的是常量(這個常量就是指標位址的數值)

有需要進一步了解的話來hi我

7樓:我愛嬋丫頭

指標說白了就是一塊記憶體的位址,而指標變數就是用來儲存這塊位址,也就是說,指標變數裡面存的是指標,就像整型變數裡面存的是整數。

8樓:匿名使用者

首先你要明白什麼是指標,指標說白了就是一塊記憶體的位址,而指標變數就是用來儲存這塊位址,也就是說,指標變數裡面存的是指標,就像整型變數裡面存的是整數

9樓:我不

指標是位址,而指標變數是存放位址的變數

10樓:匿名使用者

指標就是記憶體位址,指標變數就是存放位址的變數。

11樓:匿名使用者

指標只是指向一塊記憶體的首位址,常量是這塊記憶體裡存的東西不能改變,變數是可以改變記憶體裡存的東西

12樓:儒雅的賈志遠

我一直在承受這個年紀不該有的帥氣和機智,我好累

13樓:匿名使用者

指標變數一般簡稱指標

c語言中「指標」和「指標變數」的區別是什麼??

14樓:大野瘦子

1、概念不同

「指標」是概念,「指標變數」是具體實現,指標也是乙個變數,所以需要進行定義,而對於指標的定義,與一般變數一樣。

2、 存放位址不同

乙個變數的(記憶體)位址稱為該變數的「指標」,通過指標能找到以它為位址的記憶體單元。而指標變數是用來存放另乙個變數的位址的(即指標)。

指標和指標變數的關係

1、指標就是位址,位址就是指標。

2、位址就是記憶體單元的編號。

3、指標變數就是存放記憶體位址的變數。

4、指標和指標變數是兩個不同的概念,但要注意的是,通常我們敘述時會把指標變數簡稱為指標,實際他們含義並不一樣。

注:指標裡存的是100. 指標:位址 - 具體。

指標裡存的是位址,指標:指標變數 -可變。

指標的好處:

1、直接訪問硬體

2、快速傳遞資料(指標表示位址)

3、返回乙個以上的值返回乙個(陣列或者結構體的指標)4、表示複雜的資料結構(結構體)

5、方便處理字串

6、指標有助於理解物件導向

關於c語言的 變數 位址 和 值

以下是個人理解 變數具有型別,而型別是編譯器用來分配儲存空間的模板,比如int型分配4個位元組,也就是分配了32位。所以,定義乙個變數並不代表分配了乙個空間,只是定義了乙個分配模板。只有使用了已經定義的變數,才為其分配空間,如int i 0 分配空間給所定義的變數和使用變數,兩個的本質是一樣的,並且...

c 的new返回值是指標是吧,java的new返回值是什麼

1.new的作用是從自由儲存為 類 的物件或物件陣列分配記憶體,並將已適當分類的非零指標返回到物件。比如 char pchar new char 10 delete pchar 例子中動態分配了10個char型別的記憶體給了pchar,來構成一個陣列。需要注意的是,分配陣列採用 如果只是單個的只要n...

C 中的new返回值是指標嗎?Java中new返回值是什麼

c 中new運算子用於動態分配和撤銷記憶體的運算子。1 開闢單變數位址空間 new int 開闢乙個存放陣列的儲存空間,返回乙個指向該儲存空間的位址.int a new int 即為將乙個int型別的位址賦值給整型指標a.2 int a new int 5 作用同上,但是同時將整數賦值為5。2 開闢...