LPCSTR CONST 指針

今天用指針調用函數,發現了一些問題,查找以後發現是對const和指針理解不到位導致的。

如果我們定義一個常量和一個指針:

<span style="font-size:14px;"><span style="font-size:14px;">int a=3;

const int *p=&a;</span>
</span>

那麼通過指針是不能修改a的值,但是直接修改a的值是可以的。

在MFC中我們經常見到LPCSTR這個類型,看一下它的定義:

<span style="font-size:14px;"><span style="font-size:14px;">typedef __nullterminated CONST CHAR *LPCSTR, *PCSTR;</span></span>

原來是一個常量指針,所以不能通過LPCSTR類型的指針,修改它的值。


今天犯的錯誤就是定義了一個

<span style="font-size:14px;"><span style="font-size:14px;">void GetData(LPCSTR pStr,LPCSTR pData);

CString str;
GetData("ddd",str);</span></span>

 通過以上的函數調用是不能修改pData的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章