⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

C const 与指针的复杂组合

厘清 const 修饰指针的不同位置(指向常量的指针、常量指针、指向常量的常量指针)及其含义。 · 难度:入门 · +15XP

const 与指针的三种组合

const 关键字与指针结合时,位置不同含义截然不同。理解这些区别对于编写安全、可读的代码至关重要。

1. 指向常量的指针

const int *p;  // 或 int const *p;
// 不能通过 p 修改所指向的值,但 p 可以指向其他地址

2. 常量指针

int * const p;
// p 本身是常量,不能指向别处,但可以通过 p 修改所指向的值

3. 指向常量的常量指针

const int * const p;
// 既不能修改 p 的指向,也不能通过 p 修改值

表格:快速区分

写法指针本身所指向的值
const int *p可改不可改
int * const p不可改可改
const int * const p不可改不可改

记忆技巧

从右向左读:const int * const p → “p is a const pointer to a const int”。const 修饰它左边的内容,如果左边没有内容则修饰右边。

练习提示

在 starter_code 中,尝试取消注释各段代码,观察编译器的报错信息,从而理解每种限制是如何生效的。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 105 篇
0 完成
🔥 0