在 C/C++ 中,const
用於定義常量,防止資料被意外修改。
★ 什麼時候需要為指標加上const:
★ 假設我們有一個函式,傳入的是一個指標 int *ptr
,以下是加上 const
的幾種不同情況:
1. const int *ptr
或 int const *ptr
-
含義:指標
ptr
所指向的內容是常量,不能透過ptr
來修改這個內容,但指標ptr
本身可以指向其他地址。 -
示例:
2. int *const ptr
-
含義:指標
ptr
本身是常量,因此不能指向其他地址,但指向的內容可以修改。 -
示例:
3. const int *const ptr
或 int const *const ptr
-
含義:指標
ptr
本身和指向的內容都是常量,既不能修改ptr
所指向的內容,也不能讓ptr
指向其他地址。 -
示例:
總結
const int *ptr
或int const *ptr
:指標指向的內容是常量,內容不可修改,但指標本身可以指向其他地址。int *const ptr
:指標本身是常量,指向的內容可以修改,但指標不能指向其他地址。const int *const ptr
:指標和指向的內容都是常量,既不能修改內容,也不能修改指標的地址。