『壹』 計算機內存是怎麼分配空間的啊
雖然是墳貼,我也翻出來了,回答一下
如題,如果你的a被分配的地址是0x00,那麼它佔用的地址是0x00到0x03這樣的四個位元組。所以後續的char不可能被分配為0x01了。內存中每一個位元組都有自己的地址,而分配給一個變數的地址返回的僅僅是它的首地址。
不知道我說的是否明白。
『貳』 內存空間具體是指什麼啊,為一個變數分配存儲空間是什麼意思,怎麼分配啊
你定義一個變數就是為變數在內存中分配了存儲空間(單元),變數的類型不同所分配的存儲空間也不同,比如整型,長整型,單精度型,雙精度型,所佔用的存儲空間都不同,
『叄』 聲明一個變數占空間嗎
在計算機編程中聲明一個變數並不一定佔用內存空間。
計算機編程中聲明的含義當一個計算機程序需要調用內存空間的時候,對內存發出的「佔位」指令,我們稱之為「聲明」。
聲明一個變數只是將變數名標識符的有關信息告訴編譯器,使編譯器「認識」該標識符,但是聲明並不一定引起內存的分配!而定義一個變數意味著給變數分配內存空間,用於存放對應類型的數據,變數名就是對相應的內存單元的命名!
C++程序中,大多數情況下變數聲明也就是變數定義,聲明變數的同時也就完成了變數的定義,只有聲明外部變數時例外!
VB程序,Dim 語句,聲明變數並分配存儲空間。
當然這些語句實際是在程序運行或調試時才真正起作用,也有一些是在程序運行中還會發生動態數組變數的再定義而改變佔用內存空間的。
參考:http://ke..com/link?url=-
『肆』 在C語言中,我不清楚內存是如何給變數分配內存單元的,聲明了就分配內存單元,還是初始化才分配內存單元
在C語言中聲明和定義是不同的,只有當你定義變數的時候系統才會給你的變數分配內存,例如int a;(是定義),extern int a;(是聲明),前者會分配,而後者不會;只要你定義變數就分配,int a;int a = 10;都是定義,都會分配!!
『伍』 指針變數, 系統會給它分配內存單元嗎
這個是會的,指針也是變數,所有的變數都會有一個地址來保存他的值,指針的大小根據不同的系統不一樣,但是都是佔一個int型,如果是32位,就是4個位元組,16位就是2個自己,正是因為指針有了地址來保存,所以就有指向指針的指針,同樣,每個函數其實也是有一個地址來保存,用來說明這個函數在內存的地址,當要調用這個函數時,只要知道這個地址,就可以找到這個函數,也就有了指向函數的指針
使用指針的時候一定要注意,指針的使用時有風險的,要特別注意「野指針」的產生,盡量不要讓指針指向不確定的地址,這樣有可能導致程序錯誤,更嚴重的導致系統崩潰。祝你進步!
『陸』 變數與內存分配
每種變數都有自己的儲存區,和其他互不關聯
外部變數是存在 靜態區的
自動變數是存在 棧區的
而malloc分配的空間是存放在 堆 中的,
所以malloc只可以管理 堆 中變數,無法管理其他變數的
『柒』 給變數分配內存單元是在什麼時候進行的
這個涉及到局部變數還是全局變數的問題,函數中的變數屬於局部變數,所以再調用到之後才開辟內存空間,但局部變數所在函數調用完畢,局部變數就被取消了,然後所佔內存就被收回了。 而全局變數由於作用域很廣,一旦定義,編譯器就會分配內存,程序運行期間這塊內存單元一直有效,直到整個程序結束才由系統收回內存~~
『捌』 定義一個共用體變數時,系統分配給他的內存單元是
定義一個共用體變數時,系統分配給他的內存單元是:成員中占內存量最大者所需的容量。
使用共用體變數的目的是希望通過統一內存段存放幾種不同類型的數據;但是要注意,每一瞬間只能存放一種,而不是存放集中。並且,如果對新的成員變數的話,原來的成員變數的值就被覆蓋了。
(8)電腦變數分配內存擴展閱讀:
同一個內存段可以用來存放幾種不同類型的成員,但是在每一瞬間只能存放其中的一種,而不是同時 存放幾種。換句話說,每一瞬間只有一個成員起作用,其他的成員不起作用,即不是同時都存在 和起作用的。
共用體變數中起作用的成員是最後一次存放的成員,在存入一個新成員後,原有成員就失去作用。共用體變數的地址和它的各成員的地址都是同一地址。
『玖』 微機原理 變數分配內存空間及初始化的問題
N代表buf2的長度
buf2那裡的buf1,是取buf1的偏移地址作為一個字定義。
變數名代表在段內的偏移地址。
『拾』 變數是怎麼樣分配內存地址的
1、在棧內存中
變數的生長方向是向下的
就是後分配的地址小;
2、在堆內存中
變數的生長方向是向上的
就是後分配的地址大;