八股——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的指向

相关推荐
IT_陈寒9 分钟前
Vue的这个响应式陷阱,我调试了一整天才爬出来
前端·人工智能·后端
snow@li10 分钟前
Spring 项目 Java 访问修饰符 + 非访问修饰符全景梳理详解
java·后端·spring
大模型念念17 分钟前
Spring 框架入门:从零开始构建你的第一个应用
java·后端·spring
卷无止境25 分钟前
Python 相对导入与绝对导入的坑:从原理到工程实践
后端·python
卷无止境31 分钟前
Python调试那点事儿:从pdb到日志系统的实战指南
后端·python
明月_清风43 分钟前
🧙 零知识证明(ZKP)入门:隐私与扩容的黑魔法
后端·web3
明月_清风44 分钟前
🏦 RWA 现实世界资产代币化:万亿市场的入门指南
后端·web3
陈随易9 小时前
在 VSCode 里,把项目一键部署到服务器
前端·后端·程序员
鱼樱前端10 小时前
我用 Claude Code 后,编码效率翻 3 倍。但更值钱的是别的。
前端·后端·ai编程
犀利豆10 小时前
Claude code tools 研究系列-开篇(AskUserQuestion)
后端