ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【C/C++】1.函数传入指针加const的作用及用法区别
[打印本页]
作者:
兜兜零元
时间:
2024-10-27 22:22
标题:
【C/C++】1.函数传入指针加const的作用及用法区别
在 C/C++ 中,const 用于界说常量,防止数据被意外修改。
★ 什么时候必要为指针加上const:
包管数据安全
:如果函数不必要修改指针指向的数据,用 const 可以防止意外修改,确保数据安全。
void func(const int *ptr){ // 只能读取数据,无法修改 }
提升代码可读性
:使用 const 明确表现数据不可修改,使代码意图更清晰,便于维护。
答应通报常量数据
:如果指针参数为 const,可以通报常量或非常量数据,进步了函数的适用性。
const int val = 10; void display(const int *ptr); // 可以传入常量 val 的地点 display(&val);
防止指针误用
:若希望指针自己不变,可以加 const(如 int *const ptr),制止在函数内部修改指针指向的地点。
★ 假设我们有一个函数,传入的是一个指针 int *ptr,以下是加上 const 的几种差别情况:
1. const int *ptr 或 int const *ptr
含义
:指针 ptr 所指向的内容是常量,不能通过 ptr 来修改这个内容,但指针 ptr 自己可以指向其他地点。
示例
:
void func(const int *ptr) { // *ptr = 10; // 错误:不能通过 ptr 修改指向的数据 int x = 20; ptr = &x; // 合法:可以让 ptr 指向差别的地点 }
2. int *const ptr
含义
:指针 ptr 自己是常量,因此不能指向其他地点,但指向的内容可以修改。
示例
:
void func(int *const ptr) { *ptr = 10; // 合法:可以通过 ptr 修改指向的数据 int x = 20; // ptr = &x; // 错误:不能更改 ptr 自己指向的地点 }
3. const int *const ptr 或 int const *const ptr
含义
:指针 ptr 自己和指向的内容都是常量,既不能修改 ptr 所指向的内容,也不能让 ptr 指向其他地点。
示例
:
void func(const int *const ptr) { // *ptr = 10; // 错误:不能通过 ptr 修改指向的数据 int x = 20; // ptr = &x; // 错误:不能更改 ptr 自己指向的地点 }
总结
const int *ptr 或 int const *ptr:指针指向的内容是常量,内容不可修改,但指针自己可以指向其他地点。
int *const ptr:指针自己是常量,指向的内容可以修改,但指针不能指向其他地点。
const int *const ptr:指针和指向的内容都是常量,既不能修改内容,也不能修改指针的地点。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4