【C语言】const修饰普通变量和指针

news2024/11/24 10:28:05

大家好,我是苏貝,本篇博客是系列博客每日一题的第一篇,本系列的题都不会太难,如果大家对这种系列的博客感兴趣的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


文章目录

  • 一.const修饰普通变量
  • 二.const修饰指针
    • 1.const 放在 * 左边
    • 2.const 放在 * 右边
    • 3.const 放在 * 左右两边

一.const修饰普通变量

用const修饰普通变量时,是在语法层面限制了变量的修改,但是本质上,变量还是变量,是一种不能被修改的变量。以下两种定义方式都可以:

    const int a = 10;
	int const b = 10;

变量的值不能修改,否则会报错
在这里插入图片描述

但变量的值可以通过指针进行修改:
在这里插入图片描述
所以为避免变量的值被修改,同时又需要使用指针指向变量,那么就让const修饰指针


二.const修饰指针

const 可以放在 * 左边 ,可以放在 * 右边 ,也可以放在 * 左右两边,这3种方式的意义各不相同

1.const 放在 * 左边

const 放在 * 左边限制的是指针指向的内容,也就是说:不能通过指针来修改指针指向的内容,但是指针变量是可以修改的,也就是指针可以指向其它变量

int main()
{
	const int a = 10;
	const int* p = &a;

	*p = 20;//err

	int b = 20;
	p = &b;//ok
	return 0;
}

2.const 放在 * 右边

const 放在 * 右边限制的是指针变量本身,指针变量不能再指向其它内容,但是可以通过指针变量来修改指针指向的内容

int main()
{
	const int a = 10;
	int* const p = &a;

	*p = 20;//ok

	int b = 20;
	p = &b;//err
	return 0;
}

3.const 放在 * 左右两边

const 放在 * 左右两边限制的是指针变量本身和指针变量指向的内容,也就是说:不能通过指针来修改指针指向的内容,指针也不能指向其它变量

int main()
{
	const int a = 10;
	const int* const p = &a;

	*p = 20;//err

	int b = 20;
	p = &b;//err

	return 0;
}

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878784.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring事务控制

目录 1、什么是事务控制 2、编程式事务控制 2.1、简介 2.2、相关对象 2.2.1、PlatformTransactionManager 2.2.2、TransactionDefinition 2.2.2.1、事务隔离级别 2.2.2.2、事务传播行为 2.2.3、TransactionStatus 3、声明式事务控制 3.1、简介 3.2、区别 3.3、⭐作…

Unity实现异步加载场景

一:创建UGUI 首先我们在LoginCanvas登入面板下面创建一个Panel,取名为LoadScreen,再在loadScreen下面创建一个Image组件,放置背景图片,然后我们再在lpadScreen下面继续创建一个Slider,这个是用来加载进度条的,我们改名为LoadSlid…

【考研数学】概率论与数理统计 | 第一章——随机事件与概率(1)

文章目录 一、随机试验与随机事件1.1 随机试验1.2 样本空间1.3 随机事件 二、事件的运算与关系2.1 事件的运算2.2 事件的关系2.3 事件运算的性质 三、概率的公理化定义与概率的基本性质3.1 概率的公理化定义3.2 概率的基本性质 写在最后 一、随机试验与随机事件 1.1 随机试验 …

Docker-使用数据卷、文件挂载进行数据存储与共享

一、前言 默认情况下,在Docker容器内创建的所有文件都只能在容器内部使用。容器删除后,数据也跟着删除,虽然通常我们不会删除容器,但是一旦宿主机发生故障,我们重新创建容器恢复服务,那么之前容器创建的文…

Matlab图坐标轴数值负号改为减号(change the hyphen (-) into minus sign (−, “U+2212”))

在MATLAB中,坐标轴负数默认符号是 - ,如下图所示 x 1:1:50; y sin(x); plot(x,y)可通过以下两语句将负号修改为减号: set(gca,defaultAxesTickLabelInterpreter,latex); yticklabels(strrep(yticklabels,-,$-$));或者 set(gca, TickLabe…

安装mmcv失败

安装mmcv时报错 pip install mmcv这里只需要按照提示升级一下pip就可以了 pip install --upgrade pip然后安装成功

OCT介绍和分类

前言:研究方向和OCT有关,为了方便以后回顾,所以整理了OCT相关的一些内容。 OCT介绍和分类 OCT介绍分类时域OCT频域OCT扫频OCT谱域OCT OCT介绍 名称:OCT、光学相干层析成像术、Optical Coherence Tomography。 概念:O…

添加vue devtools扩展工具+添加后F12不显示Vue图标

前言:在开启Vue学习之旅时,遇到问题两个问题,第一添加不上vue devtools扩展工具,第二添加完成后,F12不显示Vue图标。查阅了很多博客,自己解决了问题,故写此博客记录。如果你遇到和我一样的问题&…

Docker容器与虚拟化技术:Docker架构、镜像管理

目录 一、理论 1.Doker概述 2.Docker核心概念 3.Docker安装 4.Docker的镜像管理命令 二、实验 1.Docker安装 2.查看Docker信息 3.Docker的镜像管理命令 三、问题 1.如何注册Docker账号 2.如何设置Docker公共存储库 四、总结 一、理论 1.Doker概述 (1) IT架构 裸…

request发送http请求

今天正式开始为大家介绍接口自动化,相信很多做测试的朋友,都用过一些工具,比如jmeter,loadrunner,postman等等,所以今天先给那些基础不太好的同学,先讲讲postman如何来测接口以及如何用pthon代码…

T113-S3 Tina-Linux -- 2.开发板使用

1. 硬件环境 1.1 开发板 型号:100ASK_T113-PRO Base V1.1(韦东山)配置:CPU:T113-S3,RAM:128MB,ROM:128MB 2. 各模块使用 2.1 wifi wifi模组型号:XR829…

数学建模(三)整数规划

视频推荐:B站_数学建模老哥 一、整数规划基本原理 数学规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法&am…

C语言刷题训练【第11天】

大家好,我是纪宁。 今天是C语言笔试刷题训练的第11天,加油! 文章目录 1、声明以下变量,则表达式: ch/i (f*d – i) 的结果类型为( )2、关于代码的说法正确的是( )3、已知有如下各变…

微PE工具箱实现U盘重装Windows系统

教程来源 U盘重装Windows系统(微PE工具箱)_哔哩哔哩_bilibili 加上自己的一丢丢理解,如果你觉得长视频看了犯困,不如看看我的理解文章说不定能够帮助到你 准备工作 到这个网站使用迅雷下载免费无插件的官方镜像MSDN, 我告诉你…

DAY05_SpringMVC—SSM整合表现层数据封装异常处理器项目异常处理方案SSM整合页面开发拦截器

目录 一 SSM整合1 SSM整合配置问题导入1.1 SSM整合流程1.2 SSM整合配置1.2.1 创建工程,添加依赖和插件1.2.2 Spring整合Mybatis1.2.3 Spring整合SpringMVC 2 功能模块开发2.1 数据层开发(BookDao)2.2 业务层开发(BookService/BookServiceImpl)2.3 表现层开发(BookCo…

vue+flask基于知识图谱的抑郁症问答系统

vueflask基于知识图谱的抑郁症问答系统 抑郁症已经成为当今社会刻不容缓需要解决的问题,抑郁症的危害主要有以下几种:1.可导致病人情绪低落:抑郁症的病人长期处于悲观的状态中,感觉不到快乐,总是高兴不起来。2.可导致工…

VSCode使用SSH无密码连接Ubuntu

VSCode使用SSH无密码连接Ubuntu 前提条件: 1. 能够正常使用vscode的Remote-ssh连接Ubuntu 2. Ubuntu配置静态ip(否则经常需要修改Remote-ssh的配置文件里的IP) 1. windows下 打开Win下的PowerShell,生成公钥和私钥 ssh-keygen…

VScode如何设置中文教程

前言:打开VSCode软件,可以看到刚刚安装的VSCode软件默认使用的是英文语言环境,但网上都是vscode中文界面教你怎么设置中文,可能不利于小白阅读,所以重装vscode,手摸手从英文变成中文。 设置为中文 打开VS…

【Microsoft 支持】【数据库-MySql】当您尝试从大于 5000 的 TCP 端口连接时收到错误 WSAENOBUFS (10055)

​ 一、转载原文 When you try to connect from TCP ports greater than 5000 you receive the error ‘WSAENOBUFS (10055)’ Symptoms If you try to set up TCP connections from ports that are greater than 5000, the local computer responds with the following WSAE…