關於const void *Pointer 和 void *const Pointer問題


const void *a

這是定義了一個指針a,a可以指向任意類型的值,但它指向的值必須是常量。

在這種情況下,我們不能修改被指向的對象,但可以使指針指向其他對象。

例如:

const void *a;*a=0x123;//是編譯通不過的,因為*a中放的是個const值。const值是不能被改變的。

const int  m=1;     const int n=2;

a=&m;    a=&n;//編譯可以通過。

 

void* const  a

這是定義了一個const指針a,a可以指向任意類型的值,但a是指向某個對象的常量指針。

我們不能修改指針中存儲的地址,但可以修改指針指向的對象。

例如:

void* const  a;這個定義:*a=0x123;是沒問題的,

但是a=(void*)&b;是不行的,因為a是const變量。

如:

int  m=1;     nt n=2;

a=&m;    a=&n;//編譯不成功。

 

可以這么說,const void *a;中const修飾的是*a。在void* const  a中,const 修飾的是a。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM