【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )
文章目錄
- 一、const 普通用法
- 二、常量指針 ( 指向 常量 的指針 | 被指向的內存不能被修改 )
- 三、指針常量 ( 指針不能被修改 )
- 三、指向 常量 的 指針常量
- 四、const 在 * 左右的意義
一、const 普通用法
const 關鍵字 在 C 和 C++ 中的表現不同 , 本篇博客主要介紹 C 語言中的 const 用法 ;
const 的用法 : 下面的 222 個寫法作用相同 , const 可以在 數據類型 前面 , 也可以在 數據類型 后面 ;
// 下面兩個 const 用法相同 const int a; int const a;二、常量指針 ( 指向 常量 的指針 | 被指向的內存不能被修改 )
下面的 c 是 指向 常量字符 的指針 , const char 表示 常量字符 , const char * 表示 指向 常量字符 的指針 ;
- 該指針 指向的 內存空間 不能被修改 ,
- 指針可以被修改 ;
上述代碼 指針指向的 內存 是常量 ; 常量指針
三、指針常量 ( 指針不能被修改 )
下面的 d 是 指向 字符 的 常量指針 , char * 表示一個指向 char 字符的指針 , 后面加上 const 表示該指針 是 常量指針 ;
- 該指針 指向的 內存空間 可以被修改 ,
- 指針 不能 被修改 ;
上述代碼 指針 是常量 ; 指針常量
三、指向 常量 的 指針常量
下面的 c 是 常量指針 指向一個常量 , 指針 和 指針指向的內存 , 都不能被修改 ;
const char * const c;四、const 在 * 左右的意義
普通的數據類型 , const 在數據類型左右作用相同 ;
指針數據類型 , const 在 * 左側是 常量指針 ( 內存不能修改 ) , const 在 * 右側是 指針常量 ( 指針不能被修改 ) ;
指針常量與常量指針 : 需要查看 const 修飾的是 指針變量 , 還是 修飾 指針變量 指向的內存空間 ;
- const 在 * 右邊 ( 指針常量 | const 修飾的是變量 ) : const 修飾的是 指針變量 , 如 char * const d , const 修飾的是 char * , 指針不能被修改 ; 這是 指針常量 ;
- const 在 * 左邊 ( 常量指針 | const 修飾的是數據類型 ) : const 修飾的是 指針變量 指向的內存空間 , 如 const char *c , const 修飾的是 char , char 數據不能被修改 , 這是 常量指針 , 指向常量的指針 ;
const 修飾的是右邊的內容 ,
- 右邊是 變量 , 相當于 const 在 * 右邊 , 指針常量 , 指針不能修改 ;
- 右邊是 數據類型 , 相當于 const 修飾的是 內存中的數據 , 指針指向的內存不能被修改 ;
總結
以上是生活随笔為你收集整理的【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Java 中 ArrayLi
- 下一篇: 【C 语言】二级指针作为输出 ( 指针输