定義和聲明的區別:
聲明是向編譯器介紹名字-標識符。它告訴編譯器這個函數或變量在某處可以找到,它的模樣像什么。而定義是說:“在這里建立變量”或“在這里建立函數”。它為名字分配存儲空間。無論定義的是函數還是變量,編譯器都要為他們在定義點分配存儲空間。對於變量,編譯器確定變量的大小,然后在內存中開辟空間來保存數據,對於函數,編譯器會生產代碼,這些代碼最終也要占用一定的內存。基本類型變量的聲明和定義(初始化)是同時產生的;而對於對象來說,聲明和定義是分開的。
聲明和定義的具體區別:
所謂定義就是(編譯器)創建一個對象,為這個對象分配一塊內存,並給他取上一個名字,這個名字就是我們常說的變量名或對象名。所謂聲明就是告訴編譯器,這個名字已經匹配到一塊內存上,下面的代碼用到變量或者對象是在別的地方定義的。聲明可以出現多次。告訴編譯器,這個名字已經被預定,別的地方再也不能用它來作為變量名或者對象名。
問題的邊界決定思考的深度—致走在高貴路上的我們