const char*, char const*, char*const的區別
const char*, char const*, char*const的區別問題幾乎是C++面試中每次都會有的題目。 這個知識易混點之前是看過了,今天做Linux上寫GTK程式時又出現個Warning,發散一下又想到這個問題,於是翻起來重嚼一下。
事實上這個概念誰都有隻是三種宣告方式非常相似:
Bjarne在他的The C++ Programming Language裡面給出過一個助記的方法:
把一個宣告從右向左讀。
char * const cp; ( * 讀成 pointer to ) cp is a const pointer to char
const char * p; p is a pointer to const char;
char const * p; 同上因為C++裡面沒有const*的運算子,所以const只能屬於前面的型別。
C++標準規定,const關鍵字放在型別或變數名之前等價的。
const int n=5; //same as below
int const m=10
結論:
char * const cp : 定義一個指向字元的指標常數,即const指標
const char* p : 定義一個指向字元常數的指標
char const* p : 等同於const char* p
摘自:[url]http://www.cnblogs.com/Flouse/archive/2008/08/14/constPointer.html[/url]
相關文章
- const char*, char const*, char*const 有何區別?
- C++中string、char *、char[]、const char*的轉換C++
- const char* 型別不能用於初始化char* 型別實體型別
- C++中char* const char* string 之間的轉換複習C++
- 【C++】CONST CHAR*型別的值不能用於初始化CHAR*型別的實體C++型別
- QT中QString轉const char *的問題QT
- Qt中 QString,QByteArray,Qchar,const char* ,char *int 的用法及相互轉換QT
- E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體型別
- VS C++ 2017中const char* 型別的值不能用於初始化char*的解決C++型別
- char str[]和char *str的區別
- 【VS2019 C++】"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- 關於VS2017中const char *不能用於初始化char *型別的實體的問題型別
- 【筆記】VS2017中出現 "const char *" 型別的值不能用於初始化 "char *" 型別的實體筆記型別
- varchar和char的區別
- C++中出現《E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體》的錯誤解決方法C++型別
- VS2019【C++報錯】E0144"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- C語言 關鍵字const的作用 const int* 和int *const 的區別C語言
- let const var 區別
- var let const區別
- let與const區別
- let,const,var區別
- var、const、let 的區別
- const與static的區別
- MySQL中CHAR和VARCHAR區別MySql
- 談MySQL中char varchar區別MySql
- char和varchar2的區別
- VS2019中出現E01104“const char *”型別的值不能用於初始化“char *”型別的實體的錯誤的解決辦法型別
- C語言程式的內在分配:堆和棧以及char a[]和char*的區別C語言
- var、let和const的區別
- var和let/const的區別
- const、define 和 static 的區別
- const和readonly的區別
- char ,varchar2和varchar的區別
- 【轉】Const,Const函式,Const變數,函式後面的Const函式變數
- JavaScript中let、const、var 的區別JavaScript
- NTMySQL中varchar和char型別的區別heeMySql型別
- oracle中char與varchar2的區別Oracle
- char,nchar,varchar,nvarchar的區別和特點