八股——const 关键字

1.const作用

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

测试代码1

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

cpp 复制代码
#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关键字,编译器报错

cpp 复制代码
#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的指向

相关推荐
锋行天下5 分钟前
一句mysql复杂查询搞崩一个壮汉
后端·mysql·go
不肯过江东丶13 分钟前
大聪明教你学Java | Spring AI Lab:一个让你 3 分钟接入 AI 对话能力的 Spring Boot 工具箱
spring boot·后端
腾讯云云开发15 分钟前
CloudBase把一套完整的 Vibe Coding 平台开源了
后端·全栈·vibecoding
lulu12165440781 小时前
Claude Code SpringBoot技能体系架构设计与演进
java·人工智能·spring boot·后端·ai编程
心之语歌1 小时前
Vert.x 高性能物联网 MQTT 网关构建指南
后端
Slice_cy1 小时前
从前端视角理解后端分层:基于 Koa 自研一个约定式 Node.js 服务框架
后端
DolphinDB1 小时前
基于 DolphinDB 搭建微服务的 SpringBoot 项目
后端·算法
属于自己的天空2 小时前
装好 Claude Code 后的第一件事:5 个可以直接抄的真实场景
后端
程序员老邢2 小时前
《技术底稿 42》查新功能通用化改造:从单一期刊到多源命中,缓存与表结构一次重构
java·后端·缓存·重构·技术底稿
独守一隅3 小时前
别再 MyBatis-Plus saveBatch 了!5600万条数据的真正批量插入方案
后端