ANSI C类型限定符

1.const

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

格式:const int a=10; const int days[12];

在指针和形参声明中使用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

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

相关推荐
我不会编程5558 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄8 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
无名之逆9 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
似水এ᭄往昔9 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙9 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
xixixin_9 小时前
为什么 js 对象中引用本地图片需要写 require 或 import
开发语言·前端·javascript
W_chuanqi10 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
anlogic10 小时前
Java基础 4.3
java·开发语言
蒙奇D索大10 小时前
【数据结构】第六章启航:图论入门——从零掌握有向图、无向图与简单图
c语言·数据结构·考研·改行学it
A旧城以西10 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea