所謂定義就是(編譯器)建立乙個物件,為這個物件分配一塊記憶體,並給它取上乙個名字,這個名字就是就是我們經常所說的變數名或物件名。
宣告有2重含義:
(1) 告訴編譯器,這個名字已經匹配到一塊記憶體上,下面的**用到變數或者物件是在別的地方定義的。宣告可以出現多次。
(2) 告訴編譯器,這個名字已經被預定了,別的地方再也不能用它來作為變數名或物件名。
定義和宣告的最重要區別就是:
定義建立物件並為這個物件分配了記憶體,宣告沒有分配記憶體。
如: extern int a;宣告乙個變數
extern int a=56;定義乙個變數
int a=56; int a;均為定義乙個變數
變數的宣告有兩種情況:
1、一種是需要建立儲存空間的。例如:int a 在宣告的時候就已經建立了儲存空間。
2、另一種是不需要建立儲存空間的。 例如:extern int a 其中變數a是在別的檔案中定義的。
總之就是:把建立空間的宣告稱為「定義」,把不需要建立儲存空間的稱為「宣告」。
基本型別變數的宣告和定義(初始化)是同時產生的;
而對於物件來說,宣告和定義是分開的。
(我們宣告的最終目的是為了提前使用,即在定義之前使用,如果不需要提前使用就沒有單獨宣告的必要,變數是如此,函式也是如此,所以宣告不會分配儲存空間,只有定義時才會分配儲存空間。)
常量:計算機記憶體裡不變的量
變數:經常改變的資料
變數命名的規則:1:識別符號 :不能以數字開頭,只能以字母或者下劃線開頭 而且只能由字母,數字,下劃線組成 (例如c#就不可以)。函式名也是這種命名規則。
c語言中的關鍵字不能做識別符號(例如for while char)。例如int _table = 3.14;
特例:int new=2;(new是c++裡的關鍵字,在c中可以做識別符號) ¥123(這個也可以,貨幣符號已經被看成字母,所以可以做識別符號)
2:變數的定義,int a,b,c; (表示分別定義a,b,c三個變數並給它們乙個記憶體,它們的記憶體都不同,對應各自的賦值)
也就是分為兩步,分配記憶體 ,賦值給變數
程式的開始變數就應該初始化(也就是賦值),如果不初始化,也可以編譯成功,但是執行可能會報錯
3:轉義字元:
\a(響鈴)
\n(換行)
\b(前移一格)
\f (換頁)
\ r(回車)
\t(當前游標退四格)
\\代表反斜線字元「\」
\"代表一格引號」
\』代表一格單引號』
\ddd (一到三位n進製數所代表的任意字元)
\xhh (一到兩位十六進製制數所代表的任意字元)
#include
void main()
#includevoid main()
#include#define pai 3.14 // 注意這個定義方式後面不用加分號 叫全域性常量
void main()
#includevoid main()
附 (int %d float %f char %c )這是相互對應的
#includevoid main()
#include//入口函式
#includevoid main()
#include#includevoid main()
最後有個關於bug的思路,不是很理解一直沒執行出來
標頭檔案 例如 china.h
#define 常量名 常量值
原始檔 例如 1.cpp
#include
#include"引用標頭檔案"
void _ __ ___ ____ //(用下劃線來替代標頭檔案的東西造成掩飾,但是可以執行並且輸出)
變數定義和宣告的區別
所謂定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體,並給它取上乙個名字,這個名字就是就是我們經常所說的變數名或物件名。宣告有兩重含義 1 告訴編譯器,這個名字已經匹配到一塊記憶體上,下面的 用到變數或者物件是在別的地方定義的。宣告可以出現多次。2 告訴編譯器,這個名字已經被預定了,別的地方...
變數的定義和宣告
我們在程式設計中,時時刻刻都用到變數的定義和變數的宣告,可有些時候我們對這個概念不是很清楚,知道它是怎麼用,但卻不知是怎麼一會事,下面我就簡單的把他們的區別介紹如下 望我的指點對你受益 變數的宣告有兩種情況 1 一種是需要建立儲存空間的。例如 int a 在宣告的時候就已經建立了儲存空間。2 另一種...
定義和宣告的區別
之前學習c c 的時候,都沒去注意變數的定義和宣告的具體區別,也隨意將它們放在標頭檔案,今日看c primer,才發現原來變數的定義和宣告之間的區別竟然如此之大,而且區別它們兩個竟然如此重要。變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。宣告用於向程式...