Ⅰ 哪位好心的哥哥姐姐,幫我解釋一下c語言中指針和地址的關系啦,還有指針是怎樣運用的
指針,全稱是指針變數,如:char *pc ; pc是指針變數,我習慣上叫他指針
這些習慣上的叫法,其實沒有真正體現它們的實際意義!我們來看定義:
指針變數(定義):存放地址的變數稱為指針變數。指針變數是一種特殊的變數,它不同於一般的變數,一般變數存放的是數據本身,而指針變數存放的是數據的地址(我們可以根據這個地址獲取到數據的值)。
地址是指內存地址,數據和應用程序在內存中存放時,內存是有編號的,這個編號就是我所說的地址。
C中任何一個數據(包括常量、變數、函數等)在應用程序運行時,都有自己的內存地址,我們通常是通過地址來訪問他們的。
Ⅱ C語言裡面的地址是什麼意思,指針指向一個變數的地址
C語言裡面的地址實際上就是一個內存單元的編號,計算機一般是以一個位元組為最小的存儲單元的,每個位元組就給它編一個編號,這個編號就是這個位元組的地址,這個編號也就是地址是具有唯一性的。指針指向一個變數的地址,這個類似於,通過知道房間號就可以確定這個房間的具體位置是一樣的道理,這個房間編號就是房間的地址。
Ⅲ 一個C語言的指針與地址關系的問題
在c中,指針式可以運算的,比如p+1,p++ ,p+n等,但是這里的+1,+n到底是什麼意思呢?注意不是真正的1,而是1個單位。一個什麼單位呢,要看指針的類型。指針是int*,那麼這里的+1就是+4個位元組的意思,也就是+1個單位的int。如果指針式double*p,那麼+1就是加1個double,也就是八個位元組,如果是對象指針,也是同樣。
你上面的例子q-p也不是簡單的指針的值(地址)的差,而是他們兩個之間的單位差,也就是qp之間差幾個單位,他們是int*,也就是差幾個int。所以不能用地址減完就收工,要處以4,得到單位差
Ⅳ c語言中指針就是地址,那&運算符也是地址,這話說的對嗎
對!
嚴格說起來,應該這么講:指針存的是地址,而&運算符是取變數的地址。
指針原理是這樣的:其實計算機中的內存就像一個個抽屜(一兆內存就相當於1百萬個抽屜),每個抽屜都有一個編號,用於存放數據。
為了方便使用,編譯器允許我們在寫程序的時候,對抽屜進行命名(而不是使用抽屜的編號),這就是變數名。就比如說我們在程序中定義:char C; 這個時候系統會幫我們找一個空閑的抽屜(比方說編號為981的抽屜),命名為C,用於存放一個字元變數。以後我們在程序里只要使用C這個變數,系統就知道是要對981這個抽屜里的數據進行操作。
而指針是什麼呢?指針是我們申請一個空抽屜,裡面不放數據,而放編號。比如我們申請一個字元指針:char *ch=&C; 這個時候,ch裡面放的是C這個變數的地址(也就是981),其中&是取址符,也就是取C這個變數的地址,而不是值。*ch才是ch指向的值。
Ⅳ C語言裡面的指針和地址有什麼區別
基本上沒有區別,c++僅僅只是在c語言的基礎上增加了面向對象的概念,所有它又被稱為是「帶類的c」,因此,c++在指針操作上增加了指向對象的指針(引用);但究其本質而言,指針仍然是內存中的地址,這一點沒有改變.
Ⅵ c語言中 指針的用法以及與地址的區別
果是在定義變數時候加在前面。
簡單的理解,是在定義變數的時候使用呢,還是在訪問變數的時候使用,就是你看它是在哪裡使用,這里把指針指向的值取出來賦給b,意思是這個變數是指針變數,如
char
*a;
如果是在訪問變數的時候加在前面,意思是取這個地址中指向的值,如
char
b=*a;
上面定義了a是一個字元指針
Ⅶ 關於C語言的指針與地址
**s表示指針的指針,也就是s存放的是指針的地址,它只接受指針的地址,所以你的s="computer"會報錯,*s="computer"是賦值語句,就是把字元串的首地址這個數據放在s里,而*s本身又是一個指針的地址,再對他取值就是**s就是字元串的內容了
Ⅷ C語言中 地址 值 指針的關系
地址是指內存分配的一個空間,按照變數的類型而分配值是存放在地址中的數值,定義一個變數後,會為變數分配一個地址,給變數賦值就是在變數所在地址放一個值,這好比旅店,地址是房間號,而人住在房間里,人就是值一個變數的地址就是該變數的指針,即指針就是指向變數地址的一個方向標