當前位置:首頁 » 編程語言 » c語言中地址碼用什麼表示
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中地址碼用什麼表示

發布時間: 2022-06-05 10:33:33

1. c語言中地址符究竟是什麼

地址符& 就是獲得一個變數/常量/函數的內存地址,沒有別的含義。

scanf中,使用地址符,是因為scanf需要的是指針變數(因此指針變數不需要地址符),而普通變數需要通過地址符轉譯為指針使用。

charc,*p;
c='a';
p=&c;//這是地址符的「真諦」
scanf("%c",&c);
scanf("%c",p);

注意兩個scanf語句都是正確的。

2. c語言中地址代表什麼意思有哪些作用

在計算機中,所有的數據都是存放在存儲器中的。一般把存儲器中的一個位元組稱為一個內存單元,不同的數據類型所佔用的內存單元數不等,如整型量佔2個單元,字元量佔1個單元等,在前面已有詳細的介紹。為了正確地訪問這些內存單元,必須為每個內存單元編上號。根據一個內存單元的編號即可准確地找到該內存單元。內存單元的編號也叫做地址。 既然根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。 內存單元的指針和內存單元的內容是兩個不同的概念。 可以用一個通俗的例子來說明它們之間的關系。我們到銀行去存取款時, 銀行工作人員將根據我們的帳號去找我們的存款單, 找到之後在存單上寫入存款、取款的金額。在這里,帳號就是存單的指針, 存款數是存單的內容。對於一個內存單元來說,單元的地址即為指針,其中存放的數據才是該單元的內容。在C語言中,允許用一個變數來存放指針,這種變數稱為指針變數。因此,一個指針變數的值就是某個內存單元的地址或稱為某內存單元的指針。

圖中,設有字元變數C,其內容為「K」(ASCII碼為十進制數 75),C佔用了011A號單元(地址用十六進數表示)。設有指針變數P,內容為011A,這種情況我們稱為P指向變數C,或說P是指向變數C的指針。
嚴格地說,一個指針是一個地址,是一個常量。而一個指針變數卻可以被賦予不同的指針值,是變數。但常把指針變數簡稱為指針。為了避免混淆,我們中約定:「指針」是指地址,是常量,「指針變數」是指取值為地址的變數。定義指針的目的是為了通過指針去訪問內存單元。
既然指針變數的值是一個地址,那麼這個地址不僅可以是變數的地址,也可以是其它數據結構的地址。在一個指針變數中存放一個數組或一個函數的首地址有何意義呢? 因為數組或函數都是連續存放的。通過訪問指針變數取得了數組或函數的首地址,也就找到了該數組或函數。這樣一來,凡是出現數組,函數的地方都可以用一個指針變數來表示,只要該指針變數中賦予數組或函數的首地址即可。這樣做,將會使程序的概念十分清楚,程序本身也精練,高效。在C語言中,一種數據類型或數據結構往往都佔有一組連續的內存單元。 用「地址」這個概念並不能很好地描述一種數據類型或數據結構,而「指針」雖然實際上也是一個地址,但它卻是一個數據結構的首地址,它是「指向」一個數據結構的,因而概念更為清楚,表示更為明確。 這也是引入「指針」概念的一個重要原因。

3. C語言中變數的地址是什麼類型的

變數的地址,在C語言中,一般寫作指針類型。
不同類型的變數地址,用不同的指針進行保存。
比如,char 類型的地址,使用char*保存,而int型地址,用int *保存。

除此外,部分情況下也會採用整型類型來保存變數地址,具體使用何種整型類型,取決於編譯器:
1 16位編譯器,地址佔16位,2位元組,可以使用short或者int保存。
2 32位編譯器,地址佔32位,4位元組,可以使用int或long保存。
3 64位編譯器,地址佔64位,8位元組,可以使用long保存。
不過不推薦使用整型類型保存地址,會帶來移植上的不通用。

4. C語言中取地址的符號都有哪些

&也有一些本身就是地址的,比如數組名那些
*p那是指針~~!
不同的,那個不是取地址,是取那地址裡面的內容。

5. c語言中內存單元的地址是用什麼進製表示的

用什麼進製表示還不都一樣……進制只是給人看看的,無論里寫什麼進制,計算機肚子里還不都是二進制……

6. C語言中數組地址的表示方法

數組變數就是它的首地址啊

7. C語言地址都是用數字表示的

地址本身就是數字,不是C語言用數字來表示。

此外,如果在源代碼中,可以用自己定義的符號變數(指針)來標識某個地址,避免使用枯燥的,而且經常變化的變數地址。

十六進制相信你懂。。。

8. C語言的地址是什麼類型,用%d還是%ld輸出

%p 直接用16進制地址形式輸出地址
%d 把地址直接用10進制形式輸出地址
應該是

9. c語言指針地址的全部表示方法

朋友那本書對指針還真的沒解釋多少.請看下面這個例子,看了你也應該會明白了float f = 1.1; // 定義一個<float>型的變數f,f的值為1.1;float* p = &f; // 定義一個<float * >類型的變數 p,值為&f(也就是變數f的在內存中的地址). 注意:指針也是一個變數,只是指針有點特殊,因為它只存儲地址,(簡單的說,指針就是一個用來存放地址的變數,)如果不懂,就繼續追問.這一步你必須清楚了.*p = 3.3; // 將3.3的值付給p指向的變數.(*操作符又稱作為間接值(indirect value) 或者解除引用(dereferencing)操作符.)float * p2 = p; // 定義一個指針p2讓p2指向變數f.(請記住p就是一個存放地址的變數,就像普通變數一樣,這條語句就是將p中存放的地址賦給p2);*p2 = *p; // 先取p指向的變數(解除引用),再取p2指向的變數(解除引用),最後將p指向的變數付給p2指向的變數,(其實這里沒有任何意義,因為他們都指向變數f.這條語句相當於 f = f;)float** temp = &p; //如果對&p取地址,那麼就應該用一個二級指針(**)來指向它,不然就沒有任何意義. (個人認為)指針的主要用途還是體現在傳遞大的數據類型方面(還有一點就是他可以通過地址(指針),來改變變數的值).例如,一個很大的數組,或者一個很大的結構體,int value1[1000];typedef struct { int value2; float value3; char value4[100]; ........} test test astTest[50];千萬不要以為這只是特殊的時候.其實這類復合型的數據是很常見的. 當某個函數需要調用他們時,如果直接傳值調用的話...int function( int value1[1000], test astTest[50] );光是將原參數的值賦給函數的參數,就會浪費很多的內存,如果一個工程全是這樣的函數,那麼...很難想像.而且value1 和 astTestt的值還不會因為這個函數而改變..(不信可以試試,想要改變的話,還得將數組或作為返回值傳遞回來.). 但是如果用指針作為參數的話..int function2( int * value, test * astTest );這樣就什麼問題都OK了.慢慢體會一下...

10. C語言中,地址是什麼

舉個例子,你在超市存放包,你存放的櫃子有個編碼,那個就是你存放的包的地址。同理,變數也是這樣。
提供幾條代碼你試
int a;

scanf("%d",&a);
printf("%p",&a);
%p,查看變數地址