cpp學習 文字常量 變數 指標基本概念

2021-06-18 20:54:37 字數 1280 閱讀 3134

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 ...