c語言聲明
⑴ c語言里聲明是什麼意思
什麼是聲明:有兩重含義,如下:
第一重含義:告訴編譯器,這個名字已經匹配到一塊內存上了(伊人已嫁,吾將何去何
從?何以解憂,唯有稀粥),下面的代碼用到變數或對象是在別的地方定義的.聲明可以出
現多次.
第二重含義:告訴編譯器,我這個名字我先預定了,別的地方再也不能用它來作為變數
名或對象名.比如你在圖書館自習室的某個座位上放了一本書,表明這個座位已經有人預
訂,別人再也不允許使用這個座位.其實這個時候你本人並沒有坐在這個座位上.這種聲
明最典型的例子就是函數參數的聲明,例如:
void fun(int i, char c);好,這樣一解釋,我們可以很清楚的判斷:a)是定義;b)是聲明.
⑵ c語言中聲明一個變數屬於什麼語句
c語言中聲明一個變數,不叫語句,所以不屬於語句。
c語言中,為了敘述方便,把需要建立存儲空間的聲明稱為定義,把不需要建立存儲空間的聲明稱為聲明。
以下詳述:
在聲明部分出現的變數有兩種情況:一種是需要建立存儲空間的(如int a;);另一種是不需要建立存儲空間的(如extern int a;)。前者稱為定義性聲明(defining declaration),或簡稱為定義(definition)。後者稱為引用性聲明(referenceing declaration)。廣義地說,聲明包括定義,但並非所有的聲明都是定義。對「int a;」 而言,它是定義性聲明,既可說是聲明,又可說是定義。而對「extern int a;」 而言,它是聲明而不是定義。一般為了敘述方便,把建立存儲空間的聲明稱為定義,而把不需要建立存儲空間的聲明稱為聲明。
⑶ C語言聲明
int 是變數的類型,表示整形的數據,後面是變數名,變數名是可以隨便命名的。不過習慣上就他的英文命名。
⑷ C語言函數聲明
我也來 說幾句。。
標准編譯器 對函數的調用 都要
先申明 才能 調用
(生產的時候就這樣設定的)。。我推薦試用
大點的 vs2005,vc2000.
小點的 Dev-cpp ,Turboc 3.0 (2.0 不支持滑鼠有點 麻煩)
這里 就涉及: 申明和定義之間的區別。
申明-- 不開辟內存,僅僅告訴編譯器,申明的部分存在,要預留一點空間。
定義-- 開辟內存。
申明 屬於 預編譯范疇的。最好寫在頭文件中(樓主,自定義頭文件學了沒有啊?)(申明都寫在頭文件中,只是一種好的編程習慣)
因為 在編譯的時候,編譯器先處理一些特殊數據(宏定義,函數的申明,變數的申明),在這個過程中,編譯器 通過申明 可以預測整個定義需要的內存大小,並且 把這些大小預留起來,留給定義的時候使用(因為雖然定義,但是在 main函數裡面沒有調用,一樣的不分配內存)。
如果不事先申明,直接定義,有可能會造成系統崩潰,出現內存不足,不能分配。 然而現在內存都是1G左右了,所以一般空間都足夠,所以你也可以不申明直接定義函數。
但是一旦內存緊張,就會出錯,而且程序簡潔性就很低。(不看到定義,還不知道原來還定義了這么一個函數!!!)
還有 變數也一樣,標準的都是 先申明在定義。
extern int i; //申明
int i=0; //定義並初始化為0
int i; //定義
.。。。。。。。。。。。。。。。。。
所以 從現在其要養成良好的編程習慣
先申明,在定義。
申明最好都放在 一塊,並且都在頭文件中(為了便於管理)。
⑸ 怎樣讀C語言的聲明
不叫如何讀 C 語言的聲明,而是根據你具體的編程需要,將某個變數聲明成哪一種數據類型的。例如:對於字元型變數 char 來說,如果你希望將字元型變數 char 的范圍擴大一些才能夠滿足你的需求,那麼就必須將字元型變數聲明成:unsigned char my_char ;(無符號字元型,通常涉及到漢字內碼編碼的程序就必須使用無符號字元型,因為漢字內碼的表示規定了漢字的兩個位元組,每個位元組的最高位必須為 1,所以其范圍是從:0 - 255);如果只是做一個簡單的英文字元處理程序,不涉及漢字處理,那麼就可以將字元型變數聲明成:char my_char ;
⑹ 在C語言中聲明和定義有什麼區別
變數定義:用於為變數分配存儲空間,還可為變數指定初始值。程序中,變數有且僅有一個定義。
變數聲明:用於向程序表明變數的類型和名字。
區別:
定義也是聲明,extern聲明不是定義。定義分配存儲空間,而聲明不會。通過使用extern關鍵字聲明變數名而不定義它。 事實上它只是說明變數定義在程序的其他地方。程序中變數可以聲明多次,但只能定義一次。
只有當聲明也是定義時,聲明才可以有初始化式,因為只有定義才分配存儲空間。
例如:extern int a其中變數a是在別的文件中定義的。前者是"定義性聲明(defining declaration)"或者稱為"定義(definition)",而後者是"引用性聲明(referncing declaration)"。
(6)c語言聲明擴展閱讀:
變數是一種使用方便的佔位符,用於引用計算機內存地址,該地址可以存儲Script運行時可更改的程序信息。
例如,可以創建一個名為Click Count的變數來存儲用戶單擊Web頁面上某個對象的次數。使用變數並不需要了解變數在計算機內存中的地址,只要通過變數名引用變數就可以查看或更改變數的值。在VB Script中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant。
在VB6中,變數的命名必須遵循以下規則:
(1)變數名必須以字母或下劃線打頭,名字中間只能由字母、數字和下劃線「_」組成;最後一個字元可以是類型說明符;
(2)變數名的長度不得超過255個字元;
(3)變數名在有效的范圍內必須是唯一的。有效的范圍就是引用變數可以被程序識別、使用的作用范圍——例如一個過程、一個窗體等等;
(4)變數名不能是VB中的保留字(關鍵字),也不能是末尾帶類型說明符的保留字,但可以把保留字嵌入變數名,關鍵字是指VB6語言中的屬性、事件、方法、過程、函數等系統內部的標符。
⑺ c語言中,聲明和定義有什麼區別
如果是指變數的聲明和定義:
從編譯原理上來說,聲明是僅僅告訴編譯器,有個某類型的變數會被使用,但是編譯器並不會為它分配任何內存。而定義就是分配了內存。
對於下面的兩句代碼:
void Func()
{
int a;
int b=1;
a=0;
}
對於第一行代碼,編譯器不會做任何事,它不會為它在棧中分配一點東西,直到第三句,a=0;時,編譯器才會將其壓入棧中。而對於int b=0;這一句,編譯器就會生成一條指令,為它賦值。如果反匯編,看到的代碼可能是這樣的:
push 1;
push 0;
當然,並不一定編譯器就會樣做,也有可能在聲明int a時,編譯器就會把一個廢值入棧,到第三條再為其賦值,這要看編譯器的具體取捨,所以,聲明不一定不是定義,而定義一定是定義。
但是,下面的聲明,一定僅僅是聲明:
extern int a;
這表時,有一個int變數a,它一定是在另外其他地方定義的,所以編譯器此時一定不會做什麼分配內存的事,因為它就是聲明,僅僅表明下面的代碼引用了一個符號,而這個符號是int類型的a而已。
如果是指函數的聲明和定義:
聲明:一般在頭文件里,對編譯器說:這里我有一個函數叫function() 讓編譯器知道這個函數的存在。
定義:一般在源文件里,具體就是函數的實現過程 寫明函數體。
⑻ c語言如何聲明字元串
C語言中沒有字元串類型的變數。
他只有字元變數類型char,所以字元串用變通的方式來表示。
第一是字元數組來表示字元串。用下面的語句聲明:
char a[10];
C語言中字元數組與字元串的唯一區別是字元串末尾有一個結束符'\0',而字元數組不需要。
如剛才聲明的a[10]是一個含有10個元素的字元數組,它也能存放含有9個元素的字元串。
第二種方式是直接用指針。語句是:
char *a;
用指針聲明的字元數組,大多數功能與字元數組表示字元串相同。但也有以下兩點不同,一是儲存位置不同,用字元數組表示時,字元串是存放在儲存器的變數區域內;而用指針表示的字元數組是存儲在儲存器的常量區內;第二個區別是字元數組的字元串可以更改,而指針表示的字元串不能更改。
有關字元串的賦值方法,如何引用,請參考相關書籍。
有什麼問題請留言。