導航:首頁 > 編程知識 > 編程中的聲明是什麼

編程中的聲明是什麼

發布時間:2023-06-09 12:00:42

A. Java中定義和聲明的區別

Java中,我們應該知道最基本的就是定義變數和聲明變數了,那麼定義與聲明這兩者有沒有區別呢?具體的區別又是哪些呢?下面學習啦小編來告訴你定義與聲明的區別。

定義和聲明的定義區別

1、一種是需要建立存儲空間的。例如:int a 在聲明的時候就已經建立了存儲空間。

2、另一種是不需要建立存儲空間的。 例如:extern int a 其中變數a是在別的文件中定義的。

聲明是向編譯器介紹名字--標識符。它告訴編譯器「這個函數或變數在某處可找到,它的模樣象什麼」。

而定義是說:「在這里建立變數」或「在這里建立函數」。它為名字分配存儲空間。無論定義的是函數還是變數,編譯器都要為它們在定義點分配存儲空間。

對於變數,編譯器確定變數的大小,然後在內存中開辟空間來保存其數據,對於函數,編譯器會生成代碼,這些代碼最終也要佔用一定的內存。

總之就是:把建立空間的聲明成為「定義」,把不需要建立存儲空間的成為「聲明」。

基本類型變數的聲明和定義(初始化)是同時產生的;而對於對象來說,聲明和定義是分開的。

下面小編給大家舉個例子說明一下。

例如:類A

如果A a;就是一個聲明,告訴編譯器a是A類的一個對象變數,但是不進行初始化;

如果以後a=new A();這就是初始化,分配了空間。

需要注意的是我們聲明的最終目的是為了提前使用,即在定義之前使用,如果不需要提前使用就沒有單獨聲明的必要,變數是如此,函數也是如此,所以聲明不會分配存儲空間,只有定義時才會分配存儲空間。

用static來聲明一個變數的作用有二:

(1)對於局部變數用static聲明,則是為該變數分配的空間在整個程序的執行期內都始終存在。

(2)外部變數用static來聲明,則該變數的作用只限於本文件模塊。

定義和聲明的具體區別

所謂定義就是(編譯器)創建一個對象,為這個對象分配一塊內存,並給它取上一個名字,這個名字就是就是我們經常所說的變數名或對象名。

聲明有2重含義:

(1) 告訴編譯器,這個名字已經匹配到一塊內存上,下面的代碼用到變數或者對象是在別的地方定義的。聲明可以出現多次。

(2) 告訴編譯器,這個名字已經被預定了,別的地方再也不能用它來作為變數名或對象名。

定義和聲明最重要區別

定義創建對象並為這個對象分配了內存,聲明沒有分配內存。

B. 麻煩幫我解釋下在編程中什麼叫聲明

標識符在使用前必須進行聲明,即讓編譯器知道這個名字所引用的是哪一類實體。

聲明大部分時候和定義等同。聲明和定義的區別在於:
1。對同一命名實體聲明可以有多個,而定義只能進行一次。
2。如果一個操作只是聲明,比如 extern int num ,說明在另外的地方還有對num進行定義的操作。。。

C. 編程中的,定義、聲明、初始化,各指的是什麼,舉例說明下

定義就是定義,比如INT A,就是定義一個A變數.函數也是.
大體就是沒有的,你造一個出來(表達不好,知道意思就行).
初始化就是你定義出來的變數,它最開始的值是多少,你得給它一個.
int a = 100; int a; a = 100; 這種就是了.
一定記得初始化,否則,有時,會遇上一些莫名其妙的問題.
主要說的是聲明,對於一個函數 void B(xxxxx){ xxxx }是這種樣子.
假如在一個頁面中有A,B函數,A函數里調用B函數,但是B函數是定義在A函數下面.
就是{}包起的代碼是寫在A下面.此時拆友哪,提示找不到B函數.
就需要void B(xxxxx);復制到A的上面去.A就知道了原來B函數是這造型.
這就叫聲明一下.
當然你也許會想,還不幹告檔脆把代碼都搬到A上面去,當然也行,但是當有ABCDEFG很多函數時
這些函數相互交叉調用,關系復雜時,你把誰搬上旅碼去都搞不定.
這時就把所有函數都上去聲明一通吧.
在生活中,兩者常混為一談,常聽說我在函數里聲明了一個XX變數,其實是錯的,
是定義了一個變數,但是能知道意思就行,何必執著於對與錯.
好累,希望對你有用.................

D. 編程時聲明有什麼作用

這和計算機在內存管理上有關系的。

一段程序在運行時候是放在內存中的,如果你學習過操作系統的話,那麼一定聽過進程這個概念。變數自然也是要存放在內存中的,聲明其實就是向系統申請一個空間,而實現則是你向申請好的內存放你要的數據,這是簡單的理解,和真正的實現有點差距,不過解答你的問題足夠了。

如果你知識夠扎實的話,下面是真正的實現,比如一個例子
int a;
a = 10;
這個程序變成進程在內存中時候,它會有一個8K大小的系統堆棧空間。如果不懂就當成是個8K的內存(LINUX上是這么大,不知道WINDOWS有多大)。這個8K內存除了存放a這個數據外,還有大量其它的信息要記載,int a就是向這個8K內存申請一個int型大小的內存,其中這個內存地址就返回給a,你可以通過printf("%d", &a);來看到a中存放的地址。然後將10這個數據放到a所指定的內存中。這也就是為什麼程序中局部變數不能太大的原因。

閱讀全文

與編程中的聲明是什麼相關的資料

熱點內容
美版a1453是什麼版本 瀏覽:517
電腦里的文件夾按照拼音歸類 瀏覽:996
文件管理器怎麼把視頻壓縮成文件 瀏覽:477
標准化文件名稱包括哪些 瀏覽:85
win10不能讀取dll文件 瀏覽:882
雲騎士重裝系統找不到usb字樣文件 瀏覽:42
皖事通app社保年限在哪裡看 瀏覽:65
為什麼快影顯示沒網路 瀏覽:356
華為如何讓手機升級提醒紅1消失 瀏覽:345
我愛九九商城app 瀏覽:587
劍靈蒼穹武器升級 瀏覽:248
微信錢包微粒貸 瀏覽:654
滾動字幕屏找不到文件 瀏覽:990
鄭州青少年學編程哪個機構比較好 瀏覽:866
ps文件打開不是彩色的 瀏覽:781
監控硬碟格式化工具 瀏覽:512
下載新版本微信6311 瀏覽:440
有哪些手游可以鍛煉編程能力 瀏覽:602
網路高清監控安裝方法 瀏覽:165
linuxtty切換 瀏覽:966

友情鏈接