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

相关推荐
码界奇点42 分钟前
基于ASP.NET Core的内容管理系统设计与实现
c++·后端·车载系统·毕业设计·asp.net·源代码管理
IT_陈寒44 分钟前
React开发者都在偷偷用的5个性能优化黑科技,你知道几个?
前端·人工智能·后端
wuyaolong0071 小时前
Spring Boot 3.4 正式发布,结构化日志!
java·spring boot·后端
番茄去哪了1 小时前
Java基础面试题day01
java·开发语言·后端·javase·八股·面向对象编程
用户8356290780512 小时前
Python 设置 Excel 条件格式教程
后端·python·excel
XuCoder2 小时前
告别COS,用 GitHub + jsDelivr 搭建零成本图床
后端
武子康2 小时前
大数据-251 离线数仓 - Airflow 安装部署避坑指南:1.10.11 与 2.x 命令差异、MySQL 配置与错误排查
大数据·后端·apache hive
Memory_荒年2 小时前
自定义 Spring Boot Starter:手搓“轮子”,但要搓出兰博基尼!
java·后端
bugcome_com2 小时前
ASP 与ASP.NET核心解析:从经典 ASP 到ASP.NET的演进与实战
后端·asp.net
栈外2 小时前
我是IDEA重度用户,试了4款AI编程插件:有一款有并发Bug,有一款越用越香
java·后端