2026/2/3 4:34:56
网站建设
项目流程
建设网站需要哪些内容,网络seo招聘,网站建设 小程序制作,怎么搭建一个自己的网站先明确核心规则
const 的作用是修饰“其右侧的内容”为只读#xff08;不可修改#xff09;#xff0c;判断时只需看 const 挨着谁#xff1a;
若挨着变量名 → 变量值不可改#xff1b;若挨着指针符号 * → 指针指向的内容不可改#xff1b;若既挨着 * 又挨着变量名 →…先明确核心规则const的作用是修饰“其右侧的内容”为只读不可修改判断时只需看const挨着谁若挨着变量名 → 变量值不可改若挨着指针符号*→ 指针指向的内容不可改若既挨着*又挨着变量名 → 指针指向的内容 指针本身都不可改。逐一拆解四种写法的区别1.const int p和int const p无指针修饰普通变量结论这两种写法完全等价含义定义一个只读的整型变量 pp 的值一旦初始化就不能修改。示例代码#include stdio.h int main() { const int p 10; // 等价于 int const p 10; // p 20; // 编译报错const修饰的变量值不可修改 printf(p %d\n, p); // 仅能读取输出p 10 return 0; }关键无指针时const放在int前/后没有区别都是限制变量值不可改。2.const int *p指针const 修饰*p含义定义一个指针 pconst修饰的是*p指针指向的内容即指针 p 本身可以修改能指向其他地址指针指向的内容*p不可修改只读。示例代码#include stdio.h int main() { int a 10, b 20; const int *p a; // p指向a*p不可改 // *p 100; // 编译报错指向的内容只读 p b; // 合法指针本身可以改现在p指向b printf(*p %d\n, *p); // 输出*p 20 return 0; }3.int * const p指针const 修饰 p含义定义一个指针 pconst修饰的是 p指针本身即指针 p 本身不可修改不能指向其他地址指针指向的内容*p可以修改。示例代码#include stdio.h int main() { int a 10, b 20; int * const p a; // p指向a指针本身不可改 *p 100; // 合法指向的内容可以改 // p b; // 编译报错指针本身只读 printf(*p %d\n, *p); // 输出*p 100 return 0; }4.const int * const p双重 const 修饰指针含义const既修饰*p又修饰 p是“只读指针 只读内容”即指针 p 本身不可修改不能指向其他地址指针指向的内容*p也不可修改。示例代码#include stdio.h int main() { int a 10, b 20; const int * const p a; // 双重只读 // *p 100; // 编译报错指向的内容只读 // p b; // 编译报错指针本身只读 printf(*p %d\n, *p); // 仅能读取输出*p 10 return 0; }总结无指针时const int p和int const p完全等价都是普通变量值不可改有指针时看const位置挨着*则“指向的内容不可改”挨着指针名则“指针本身不可改”双重constconst int * const p是最严格的指针和指向的内容都只读。记住核心口诀const 修饰其右侧的内容就能快速判断所有写法的含义。