c語言中是變數儲存位址還是位址儲存變數啊

2025-07-16 22:20:15 字數 3374 閱讀 8611

1樓:網友

變數在記憶體中儲存。

每個記憶體位置都有乙個編號,就是記憶體位址值。

位址值,就是個整數,所以,也可以儲存到變數中,c中的指標變數,就是專門用來儲存位址的變數 。

c語言中 變數儲存的是不是位址

2樓:風若遠去何人留

變數儲存的是對應型別的值,是否為位址同樣取決於型別。

變數具有不同的型別。

整型變數int,儲存的就是乙個整數;float型別,儲存的是實數;char型別,儲存的是字元(實際上也是整數)。

指標變數,是c語言的特殊變數,其儲存的是位址。在c語言中,只有指標是用來儲存位址值的。

3樓:網友

輸出的時候。

把 %f 寫成 %.xf 就可以了 保留x位小數。

4樓:網友

是的,變數儲存位址,然後根據這個位址訪問記憶體!如果是int型別的變數,會根據位址自動獲取int大小的記憶體資料,如果是char*型別的,會根據位址自動獲取記憶體資料,直到遇到'\0'才算獲取完,其它型別類似!

5樓:倒黴熊

在處理過程中 a表示 那個位址空間上所儲存的內容,而不是代表那片位址。

a代表那片位址。

如果用a表示那片位址,就需要另外的東西來代表上面的儲存的東西。

6樓:

c語言是非常靈活的計算機語言,變數可以儲存的可以是位址,也可以是數值。

7樓:網友

初學者?

簡單來說,變數名,是給寫**的人看的,為了讓自己或別人很容易明白你的意圖。

但計算機並不需要變數名,它只需要知道乙個資料儲存的位置和長度就行了。

a 這樣的形式,在語法上,代表乙個變數名。

a**乙個變數的位址。

實際上a在程式實際跑起來的時候並不存在,比如a裡面的值是5,那麼這個5是存在記憶體中的,同時,這個值5在記憶體中存在的話是必須要有乙個位址的吧?

8樓:有吉祥來臨

&a 代表取a的位址,a 代表你後來的賦值。

9樓:做而論道

a是我們對那個整形變數的4個位元組取的"名字",,-對。

實際上程式在編譯時,所有的a都轉換為了那個位址空間了。

對。那麼&a 和 a 那不是一樣的概念了嗎?

不一樣。程式裡面的a到底儲存的是什麼呢?

編譯軟體幫你,把數字,存放到四個位元組中。

軟體,把a拿出來給人看的時候,是拿出它的內容。

以後,人們討論a,說的是它的內容。

a,就是4個位元組的內容。

c語言中,將乙個變數的位址稱為?,存放變數位址的變數稱為?

10樓:匿名使用者

存放位址的變數是指標變數,變數的位址稱為記憶體的位址,是指標儲存的值,c語言中指標和陣列哼難理解,同時還有二級指標,存放的是指標變數的位址,陣列名是常指標,不能做左值,作為右值是代表的是陣列首元素的位址,&陣列名,才是陣列的位址,儘管值是相同的,但是意義不一樣,就像****在北京,北京市**也在北京,雖然是同乙個地方,但是代表的不同,****代表的是中國,北京市**代表的是北京,意義與重量級都不同。

11樓:倒黴熊

變數名指標變數。

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

變數是高階語言裡的概念,在轉化成低階語言後,是以位址的方式存在的。

12樓:

c語言中,將乙個變數的位址稱為指標,存放變數位址的變數稱為指向指標變數的指標。

13樓:卟懂婗

指標 指標變數。

你要記住指標就是位址,位址就是指標。

c語言%p是輸出該變數的位址還是輸出該變數儲存的位址?

14樓:法克奧拉

格式控制符「%p」中的p是pointer(指標)的縮寫。指標的值是語言實現(編譯程式)相關的,但幾乎所有實現中,指標的值都是乙個表示位址空間中某個儲存器單元的整數。printf函式族中對於%p一般以十六進位整數方式輸出指標的值,附加字首0x。

示例:int i = 1;

printf("%p",&i);

相當於。int i = 1;

printf("0x%x",&i);

c語言中的指標,它儲存的是變數的位址,那它自己本身的位址是怎樣儲存的?

15樓:網友

指標變數,它是乙個變數,而且不管他指向什麼型別,他的大小都是恆定的(4個位元組)。

不要把指標看成什麼奇特的東西,他就是乙個普通的變數,只不過他和int型別不同之處在於,他儲存的資訊是乙個位址。

至於他本身的位址是怎麼儲存的,你可以問一下自己乙個int型的資料的位址是怎麼儲存的。

而這個問題的答案,就非常無聊了,這是程式編譯時做的工作,而我們沒有這種必要去了解。

16樓:匿名使用者

&指標名就能看到指標自己的位址了。

c語言中,變數名代表儲存位址,那麼為什麼scanf中對某個變數操作,要加&,而prinft是直接用變數名?

17樓:一顆程式猿

因為scanf的引數是指標型別 它要把輸入的值放到你提供的變數裡, 所以必須使用引用引數傳遞。

c語言中 區域性變數和全域性變數都是儲存在什麼區

18樓:網友

c語言中區域性變數存在棧裡,全域性變數存靜態儲存區。

區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。

全域性變數全部存放在靜態儲存區,在程式開始執行時給全域性變數分配儲存區,程式行完畢就釋放。在程式執行過程中它們佔據固定的儲存單元,而不動態地進行分配和釋放;

19樓:網友

記憶體中供使用者使用的儲存空間分為三部分,1、程式區。

2、靜態儲存區。

3、動態儲存區。

全域性變數全部放在靜態儲存區中,而在動態儲存區中存放函式形式引數和自動變數(區域性變數)以及函式呼叫時的現場保護和返回位址,因為你知道的,函式呼叫是通過系統棧實現的。

20樓:網友

全域性變數和區域性靜態變數在記憶體靜態區;

區域性變數在棧區。

21樓:網友

全域性資料區:存放程式的全域性資料和靜態資料。

堆區:存放程式的動態資料。

c語言中的取地址符的作用,c語言中的取地址是在什麼時候要用,為什麼要用

b是定義一個變數 而a是引用一個變數。它們之間沒有比較的必要,可能是你理解上有偏差。a和b完全沒有關係,int b 是定義一個變數,且沒有給其初始化,scanf是標準庫提供的輸入函式,函式格式是scanf char format,void p format 是輸入數 回據格式控制字串,void p,...

c語言把int變數地址賦給另int變數

p是指標變數,取復p地址制的地址賦值給一個變數bai,用 p,這是對的。du 問題zhi在於用來儲存這個結果的變dao量是什麼型別的,應該是指向指標的指標,int q。int p,q p new int p 30 q p 直接訪問 q是危險的!應該先給q賦值再訪問 q,比如 q new int q ...

組合語言中si表示地址還是內容,組合語言中 SI 表示地址還是內容

si 是暫存器間接定址,它是指si中地址的內容,所以是具體內容,si是地址。在x86彙編中,中括號就相當於c語言的星號,即指標,mov x,地址 相當於x p一樣,是取內容。若mov si 100 則si代表 100 si 代表 地址為100的記憶體單元中的內容 記住,有的代表記憶體單元裡面 的內容...