天天看點

指針,常量和類型别名

定義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