ANSI C类型限定符

1.const

以const关键字声明的对象,其值不能通过赋值、递增、递减来修改,成为只读变量。

格式:const int a=10; const int days12;

在指针和形参声明中使用const

1.const float *pf;//pf指向一个float类型的const值。

pf指向的值不能被改变,而pf本身的值可以改变。

2.float * const pt;//pt是一个const指针。

pt本身的值不可以变,pt必须指向同一个地址,但它所指向的值可以变。

3.const float * const ptr;

ptr既不能指向别处,它所指的值也不能改变。

4.float const * pfc;//与 const float *pfc相同。

简而言之,const放在*左侧任意位置,限定了指针指向的数据不能改变,

const放在*右侧,限定了指针本身不能改变。

2.volatile

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如 果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。

3.restrict

用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容。

相关推荐
Roadinforest1 分钟前
Spring Boot 4 六步入门实录:从 Hello World 到一个能交付的 Todo API
java·开发语言·spring boot·spring
88号技师15 分钟前
2026年9月SCI-天气状态蚂蚁优化算法Weather State Ants Optimizer-附Matlab免费代码
开发语言·算法·matlab·优化算法
孙启超16 分钟前
【AI开发之Rust】第 20 课:壳侧 API 封装 —— 把 Rust 能力接进真实 UI
开发语言·后端·rust
芯祥联35 分钟前
STM32 上跑 MQTT 怎么选?嵌入式 MQTT 客户端 C 语言实现对比
c语言·stm32·单片机·嵌入式硬件·网络协议·开源·broker
CarIise40 分钟前
MyBatis缓存与分页插件:从一级二级缓存到底层原理与PageHelper实战
java·开发语言·spring
chenbingjie_c8 小时前
C++ 进阶核心知识点总结:模板、内存分区、new/delete、内存池
开发语言·c++
Escalating_xu9 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
实心儿儿9 小时前
Qt — Qt 事件
开发语言·qt
周杰偷奶茶9 小时前
【Java】数据类型与变量
java·开发语言