定義typedef char* cptr,cptr和char *在定義資料時的差別,可由下面兩個程式得出。
typedef char * cptr;
void main()
{
char a;
const cptr p = 0;
p = &a;
system("pause");
}
上面的程式編譯時報錯,error C3892: “p”: 不能給常量指派
void main()
{
char a;
const char * p = 0;
p = &a;
system("pause");
}
這個程式編譯成功
通過上面兩個程式,我們可以得出:
利用别名定義資料類型時,定義的變量的基本資料類型是該别名的類型,如const cptr p = 0;基本資料類型是cptr,是以P是常量指針。對于const char * p = 0;其基本資料類型是const char,p是指向常量的指針,與const cptr p = 0中p的意義完全不同。
以上知識是在<<C++ Primer>>中看到的,第五版61頁
轉載于:https://www.cnblogs.com/gazebal/p/4601157.html