news 2026/10/2 12:53:42

Const(类型限定符)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Const(类型限定符)

C语言中 const 是类型限定符,用于声明只读变量,初始化后值不可被修改‌,可修饰变量、指针、函数参数等多种场景。

基础用法与变量修饰

  1. ‌修饰普通变量‌:必须在定义时初始化,之后不可修改。
  • 示例:const int MAX = 100; 正确,const int x; 错误。
  1. ‌修饰数组‌:创建只读数组,元素值不可更改。
  • 示例:const int nums = {1, 2, 3};‌‌
  1. ‌修饰结构体‌:结构体所有成员视为常量,初始化后不可修改。

指针与 const 的组合

const 与指针结合有三种情况,关键在于 const 相对于*的位置:‌‌

  • ‌指向常量的指针‌:constint *p或 int const *p,指针可变,指向内容不可变。
  • ‌常量指针‌:int *constp,指针不可变,指向内容可变,声明时必须初始化。‌‌
  • ‌指向常量的常量指针‌:const int *const p,指针和内容均不可变。

函数中的应用与注意事项

  1. ‌修饰函数参数‌:防止函数内部修改传入参数,提升安全性。‌‌
  • 示例:void print(const char *str)
  1. ‌C 语言特性‌:const 变量本质是只读变量,会分配内存,C89 中不能用于数组长度定义。‌
  2. ‌与#define 区别‌:const 有类型检查和地址,#define 是预处理替换无类型检查。‌‌
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 12:53:31

FreeRTOS实战教程-第七章

第七章 时间管理 —— 改造 08_BTIM 7.1 实验回顾:裸机版基本定时器 08_BTIM 用 TIM6 每 500ms 产生一次中断翻转 LED1;主循环负责每 200ms 翻转 LED0: /* tim.c:TIM6 = 72MHz / 7200 = 10kHz 计数,计满 5000 次 = 500ms */ htim6.Init.Prescaler = 7200 - 1; htim6.In…

作者头像 李华
网站建设 2026/10/2 12:50:36

Ollama多GPU深度解析:张量并行、调度机制与性能优化实践

先聊一个我自己踩过的坑。某个周六晚上,我把一台双卡机器搬到工位上,兴致勃勃装了Ollama,拉下来一个70B的量化模型,心想两张4090怎么着也比单卡快。结果跑起来一看,两张卡确实都占了显存,但利用率一个天上一…

作者头像 李华
网站建设 2026/10/2 12:50:34

Dubbo3.0 与 Spring Cloud 性能对比

Dubbo 3.0 与 Spring Cloud 性能对比:从协议、连接模型到真实压测本文不是要给出一个“Dubbo 一定比 Spring Cloud 快”的简单结论,而是把 Dubbo 3.0 的 RPC 链路与 Spring Cloud 常见的 REST/HTTP 链路拆开,说明性能差距从哪里来、什么时候会…

作者头像 李华
网站建设 2026/10/2 12:50:32

指针初步学习

指针本质星号的用法传递时的用法本质 就是个“门牌号”把计算机内存想象成一个巨大的小区,里面有一排排一模一样的房子,你在代码里写个 int a 10;,就相当于在这个小区里租了个房子,往里面塞了个写着“10”的纸条。 那指针是啥&a…

作者头像 李华