C const typedef聯合使用注意

2022-08-21 06:30:11 字數 877 閱讀 4044

const

和typedef

在c++

使用是非常

頻繁,各自的使用方式本來就很多,當

它們兩個

同時使用來

進行定義的時候

,可能會

出現一些誤解

,下面舉例說明這一點。

typedef char * pstr;

char string[4] = "abc";

const char *p1 = string;

const pstr p2 = string;

p1++;

p2++;

編譯時p2++

typedef

和#define

不同,它

不是簡單

的文字替換。

const pstr p2 

等價於char *constp1 

,pstr

被typedef

定義為了乙個

char *

型別,即

pstr

是乙個字元指標型別,那麼

const pstr p2

中的const

修飾的就是字元指標(

p2),而不是物件(

*p2)。

所以const pstr p2 

也可以寫成

pstr const p2。在我

們平時閱讀的

c++程式中,

習慣看到的是

const放在類

型的前面。於是為了

遵照慣例,只好建議

程式設計時把

const

放在型別前面。但是,把宣告語句重寫為置

const

於型別之後更便於理解。

聯合mysql MySQL聯合

mysql聯盟 mysql union是一種運算子,它使我們可以將來自多個select查詢的兩個或多個結果組合到單個結果集中。它具有預設功能,該功能可從結果集中刪除重複的行。mysql總是在第乙個select語句中使用列名,這將是結果集 輸出 的列名。mysql union必須遵循以下基本規則 在所...

聯合主鍵SQL 聯合索引

聯合主鍵索引 聯合索引 alter table dbo tb shop add constraint shopno unique nonclustered shopgid asc prodgid asc skugid asc with pad index off,statistics norecom...

MySQL聯合索引or MySQL聯合索引命中條件

轉於 首先明確 為什麼要用聯合索引?對於查詢語句 select e.from e where e.e1 1 and e.e3 2 涉及到兩列,這個時候我們一般採用乙個聯合索引 e1,e3 而不用兩個單列索引,這是因為一條查詢語句往往應為mysql優化器的關係只用乙個索引,就算你有兩個索引,他也只用乙...