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的記憶體單元中的內容 記住,有的代表記憶體單元裡面 的內容...