1
文字常量:
文字常量一般指cpp
自己定義的一組數值資料型別,「文字」是因為我們只能夠以它的值的形式指代它;「常量」是指我們無法改變它的值。每個文字都有其相對應的型別,例如1
、2、3
是int
型別;3.1415926
是double
文字。文字常量是不可定址的,它的值存在於機子的記憶體中,但是我們沒有辦法獲取其位址。
2變數:
變數時乙個有名字的記憶體儲存區,程式可以通過對變數進行讀rwx
操作,cpp
要求每乙個符號變數都要與乙個特定的資料型別相關聯。資料型別決定了相關記憶體的大小、布局、能夠儲存值的範圍及相關操作。變數可以說是物件object
。每個變數有兩個值與其關聯:左值和右值。
左值(lvalue
):可以理解為locationvalue
。指儲存資料那塊記憶體的位址。因為文字常量不可以被定址,所以文字常量不可作為左值。
右值(rvalue
):可以理解為readvalue
。指可以被讀取的值。文字常量和變數都可以作為右值。
例:int x= 20; //ok
20= 10; //nok
,文字常量不能作為左值。
因為變數一定義就會分配相應記憶體,故乙個程式中的變數只能定義一次,如果乙個檔案中定義的變數要被其它檔案中程式訪問,則需要對此變數進行宣告。
例://定義int
物件。intx;
inty(20);
//需要呼叫int
物件。externint x;
externint y;
3指標:
指標只能持有其它同型別變數的位址。
例:int*p(new int(20)); //ok
doublex(20.15);
int*p1 = &x; //nok
指標不能初始化或賦值為其它型別物件的位址,不是因為指標不能持有其它型別物件的位址,是因為指標會對所持有的記憶體位址(不同型別資料的記憶體位址)做出完全不同的解釋。上例中如果int*
指標p1
持有double
型別物件x
位址,可能會把x
值20.15
解釋為10
或者其他值。
我們可以通過void*
指標來傳遞指標。
例:int*x(20);
double*y(10.05d);
void*p = &x; //ok
p= &y; //ok
int*x1(((int*) y));
c 資料型別 文字常量 變數
文字常量 整型型別 char,short,int,long int i 100 預設為int int i 100u 無符號整型 int i 100l long型 int i 100ul 無符號long型 表示方式 10進製,八進位制,16進製制 int i 20 10 int i 020 8 int...
學習日記(常量 變數 作用域) Day 8
type varname value 資料型別 變數名 值 可以使用逗號隔開來宣告多個同型別變數 小貼士 雖然可以使用逗號隔開宣告多個同型別變數,但這樣會讓程式變得複雜難懂,所以不建議這麼做。例 int a,b,c int a 1,b 2,c 3 缺乏程式可讀性 int a 1 int b 2 in...
PHP 和 Ruby 的基本常量變數 類的簡單書寫
php 變數 常量 變數 var 1000 常量 define root tmp 類常量 const aaa 10 類變數 同樣還是 全域性變數 global globals x ruby 變數 常量 變數 aa 10 或者 a 10 小寫字母或者下劃線開頭 常量 ma 10 例項變數 hello ...