当前位置: 首页 > news >正文

八股——const 关键字

1.const作用

作用:const用于保护指针指向数据不被修改

测试代码1

显示数组的函数不小心修改了指针指向的值,这时候没有加const关键字,编译器不会报错

#include <stdio.h> void  showar(int ar[]);int main(void)
{int ar[4]={2,3,4,5};showar(ar);
//	muliar(ar);return 0;} void  showar(int ar[]){int i;for(i=0;i<4;i++){ar[i]++;printf("ar[%d]:%d\n",i,ar[i]);}}

测试代码2

显示数组的函数不小心修改了指针指向的值,这时候 加const关键字,编译器报错

#include <stdio.h> void  showar(const int ar[]);int main(void)
{int ar[4]={2,3,4,5};showar(ar);
//	muliar(ar);return 0;} void  showar(const int ar[]){int i;for(i=0;i<4;i++){ar[i]++;printf("ar[%d]:%d\n",i,ar[i]);}}

2.const与#define区别

const的限定有限,限定的是自己,限定的是常量,别人要修改也管不着。

3.const的3种用法

const int *p=ar;

这样限定的是指针p不能修改指向的值  *p 或 p[2],但是仍然可以修改p的指向或者ar

int * const p=ar;

这样限定的是指针p能修改  指向的值*p   /  p[2],但是不可以修改p的指向

const int * const p=ar;

这样限定的是指针p不能修改  指向的值*p   /  p[2],也不可以修改p的指向

http://www.lryc.cn/news/167334.html

相关文章:

  • QT object元对象
  • 互斥锁,条件变量,信号量的三个小demo
  • 【UE 材质】力场护盾和冲击波效果
  • 类和对象三大特性之多态
  • 为何红黑树在B/B+树之上仍然占据重要地位?
  • 【算法专题突破】滑动窗口 - 水果成篮(13)
  • Peppercontent.io:人工智能驱动的内容生成工具
  • docker镜像管理-实操
  • SpringMVC-----JSR303以及拦截器
  • 基于若依框架实现markdown在线编辑
  • CentOS7上从0开始搭建Zookeeper集群
  • 康耐视读码器DataMan软件详细使用步骤
  • 408强化(番外)文件管理
  • iptables 防火墙配置
  • 面试官:我们深入聊聊Java虚拟机吧
  • 【电源专题】案例:异常样机为什么只在40%以下电量时与其他样机显示电量差异10%,40%以上电量差异却都在5%以内。
  • React 全栈体系(七)
  • NVIDIA 显卡硬件支持的精度模式
  • 【Java|golang】210. 课程表 II---拓扑排序
  • STM32CubeMX systick bug?
  • 徐亦达机器学习:Kalman Filter 卡尔曼滤波笔记 (一)
  • Java和vue的包含数组组件contains、includes
  • OpenCV_CUDA_VS编译安装
  • 基于减法优化SABO优化ELM(SABO-ELM)负荷预测(Matlab代码实现)
  • 记录第一个启动代码的诞生
  • 基于STM32的简化版智能手表
  • 揭秘弹幕游戏制作
  • 2327. 知道秘密的人数;1722. 执行交换操作后的最小汉明距离;2537. 统计好子数组的数目
  • 【TCPDF】使用TCPDF导出PDF文件
  • MacBook苹果电脑重装、降级系统