八股——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 或 p2,但是仍然可以修改p的指向或者ar

int * const p=ar;

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

const int * const p=ar;

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

相关推荐
卷无止境8 小时前
Apache Ossie:打破数据孤岛的语义互操作标准
后端·数据分析
晓杰在写后端8 小时前
从0到1实现Balatro游戏后端(11):商店商品池与运行时商品实例生成
后端·游戏开发
AskHarries9 小时前
OAuth 登录怎么接
后端
掘金者阿豪10 小时前
上线前能跑,上线后挂了,三个隐性的SQL陷阱
后端
用户83562907805110 小时前
如何使用 Python 为 PDF 添加和管理图层
后端·python
SimonKing10 小时前
那个号称"对标 Spring"的国产框架 Solon,到底行不行?
java·后端·程序员
霸道流氓气质10 小时前
SpringBoot中使用字典驱动的动态路由示例
java·spring boot·后端
用户693717500138411 小时前
Kimi K3 综合能力处于全球第一梯队
android·前端·后端
anno11 小时前
Agent 新手 Skill 优先级指南:从第一套必装工作流,到专业能力补全
前端·后端
anno11 小时前
别再把文档“一刀切”:用 LangChain.js 做好 RAG 的第一公里
前端·后端