㈠ c語言的變數名
變數名不佔空間
變數:用來標識(identify)一塊內存區域,這塊區域的值一般是可以更改的,這就是它「變」的由來,但是我們可以通過使用如const等一些修飾符號來限定這一內存區域的操作特性(characteristic),即變數的操作特性。用const修飾的使變數不能更改的就和常量一樣的變數叫做常變數。
變數名:是一個標識符(identifier),用來指代一塊內存區域,即變數,使用變數使我們操作內存以區域(area),以塊(block)為單位,提高了方便性。
你的機器代碼中,是不會出現變數名的;變數名是給我們程序員操作內存來使用的。
想想在匯編年代,沒有變數名,我們操作內存,都是用地址來直接操作的,還要控制區域大小;當然匯編語言已經有了簡單的變數。
對於編譯器,它會搜集我們的變數名,比如我們定義了一個全局的int a;那麼編譯器都為我們做了什麼呢?
它會為程序預留4個位元組的空間(假設在32位平台),並把我們的變數名「a」保存進符號表,並用這個符號表的索引對應實際的空間。
如果下面出現b = a;那麼它就會根據符號表找到變數的真正的物理位置,取得它的值,賦給b。
這是寫編譯器需要做的,我們需要建立符號表。
但是實際在匯編層次上,操作的都是地址而已,不存在任何名稱了。
㈡ C語言 變數存放另一個變數的變數名
C語言又不是解釋執行程序,在經過編譯連接之後,沒有變數名,只有地址。 你既然能在xml中解析變數名,那就可以可以把變數名轉換為序號,變數可以放在數組中,然後用序號去對應變數不就行了
㈢ 變數命名規則
變數名的命名主要三個規則:只能由字母、數字、以及下劃線組成,第一個字元必須是英文字母;有效長度為255個字母;不可以包含標點符號和類型說明符。
變數名首字母必須為字母,下劃線,或者美元符號開始,編程中所有變數必須以美元符號開始。(有些編譯器已經支持中文變數名了)變數名只能是字母,數字(0-9),下劃線的組合,並且之間不能包含空格,數字不能放在變數名首位。變數名不能使用編程語言的保留字。
因為變數名區分大小寫,所以可以在字母大小寫中任意組合。實際上,使用漢語命名變數名的話,也是可以的。但是在真正編程中,都是習慣使用英語字母進行命名。
變數名是什麼
變數代表了一個存儲單元,其中的值是可變的,故稱為變數。變數名、常量名、函數名、數組名等等,都是為了區分程序中不同的實體、人為起定的名字。通常把這些名字叫做標識符。
標識符的`命名規則如下:標識符可由三類字元:字母、下劃線、數字組成;標識符只能由字母或下劃線開頭;標識符不能具有二義性;標識符有長度要求,在起定的名字中!超出長度規定的部分將被截掉。
㈣ 問一下各位,c語言編譯器是如何處理變數名的呢
編譯器編譯到int a;時就在內存中開辟一個兩位元組的內存空間,並且命名為a
㈤ 編譯器對c語言中變數名怎麼編譯
對於變數名,會根據變數類型
開辟不同大小的內存空間
然後指定一個相對地址記錄下來。
對於編譯後, 不存在變數名,只有對應的相對地址。
㈥ java中怎樣獲取變數名(主函數中定義的);
對於局部變數是不可能的,因為變數名不是程序運行的必要部分,變數名在編譯的時候就去除了。
對於成員變數,可以參見[1],使用Fields.getName() 獲取
在編譯Java的時候加上-g選項可以保留變數名,但這只用於調試。關鍵看你怎麼用這個「變數名」了.如果你的情況和[2]一樣,不妨編程的時候換個思路。
[1]http://java.sun.com/javase/6/docs/api/java/lang/reflect/Field.html
[2]http://www.velocityreviews.com/forums/t131824-get-variables-name-on-runtime.html
㈦ C語言變數的名稱是怎麼存在的,在內存中么
編寫C語言源程序時可以理解成通過變數名訪問值,但程序必須編譯成可執行的二進制文件方能運行,這時都是對內存進行存取,已不存在變數名了。
㈧ c語言的變數名
在C中定義了一個變數,它會有一個變數名
當編譯程序掃描到這條定義變數的表達式後,
會根據定義的類型,在內存中會分配相應的空間給這個變數名對應的變數,比如int一般為2位元組,float一般是4位元組等等。。。
變數名依然存在。變數就好像是一個房間,裡面的東西是變數的值,房間的牌號是地址,該地址保存在指針中。
指針用於保存地址,要操作地址,即使使用指針。在使用指針前,必須對指針進行初始化。如下:
int
*p;
int
a=5;
p=&a;
可以通過p指針來控制a
的取值。printf("%d",*p);輸出a的值。
c語言的數組名可以看作是一個指針,不過該指針為常指針。
程序運行時,只是個給變數分配內存空間,就好給你一個房子,然後再在裡面放東西,也就是給變數賦值。變數有地址,該地址就好像貼在房門上,可將這些地址保存在指針中。。。。。
㈨ 變數名會被編譯嗎
對於變數名,會根據變數類型 開辟不同大小的內存空間 然後個相對地址記錄下來。 對於編譯後, 不存在變數名,只有對應的相對地址。
㈩ vb編譯 中 變數的名字長短 是否影響內存的佔用
完全一樣,變數名稱只是用於看代碼方便,編譯之後,變數名稱就不存在了,代之以具體的數據區地址,exe文件一般情況下分為代碼區和數據區,代碼區是只讀的,數據區可讀寫。