左右值以及const的規則

2021-08-30 15:52:22 字數 704 閱讀 8513

一、左值:寫資料,放在賦值符號的左邊。

右值:讀資料,放在賦值符號的右邊。

int a = 10;

int b = a;//a為讀資料是右值

a = 20;//a為寫資料是左值

二、const:把變數變為唯讀(只限定左值)

const c = 10;

a = c;

c = 20;//錯誤

const int c // 錯誤,沒有定義為隨機值而且不能改,無意義

1、基本型別對於const是透明的,const放在左邊右邊是一樣的

int const c = 10;//等同於c

2、const只能限定修飾的直接右邊

int a = 10;

int b =20;

const int *p=&a;

p = &a;// 正確

p1 = 100;//錯誤 const限定直接右邊是p不可改值

3、許可權可以同等或者縮小傳遞,但不能放大

int a = 10;

const int ca=10;

int *p1=& a;

int *p2=& ca;// 錯誤,不能寫只能讀資料

const int *p3=& a;

const int *p4=& ca;

int *const p5=& a;

int *const p6=& ca;//錯誤

總結 自增自減操作以及左右值的區別

一 自增自減前操作與後操作的區別 在c c 中,自增 自減 操作符為資料物件加1和減1操作提供了一種方便簡潔的實現方式。他們都有前置和後置兩種形式。下面給出簡單的 實現 includeint main 所以,從上面的 中可以看出 前自增自減操作優先順序大於賦值運算子 而後置自增自減操作的優先順序小於...

改變const值的方式

一種改變const值的方式是使用const cast型別轉換符,將const變數轉換為乙個該變數的引用,通過這個引用去改變值,這種方法的實質就是用位址改變記憶體的值。如下例項 structsa const sa sa cout sa.i endl sa sb const cast sa sb.i 1...

const 的定值判斷

指標指向及其指向變數的值的變化 const在 的左邊,則指標指向的變數的值不可直接通過指標改變 可以通過其他途徑改變 在 的右邊,則指標的指向不可變。簡記為 左定值,右定向 1 指標指向的變數的值不能變,指向可變 int x 1 int y 2 const int px x int const px...