【const-指针-数组】

2023-11-18

const

const是constant的简写,它是用来定义常量,它限定一个变量不允许被改变,产生静态作用。

修饰静态变量

const int a = 3;
int const a = 3;

上面的两种修饰都是可以的

#include<stdio.h>
{
	int const a = 3;
	a = 5;
	//报错--- error C2166: 左值指定 const 对象
	int *P = &a;
	//同样也是会报错
	// warning C4090: “初始化”: 不同的“const”限定符 
	//主要的原因是类型不符合 可以int *p = (int*) &a;强制转化
	return 0;
}

const - 数组

使用const 来修饰数组的话,当然也会对数组内部的元素得到保护。

#include<stdio.h>
int main()
{
	const int arr[5] = {1,2,3,4,5};
	arr[0] = 3;//把arr[0]的内容改为3
	//程序就报错--error C2166: 左值指定 const 对象
	//可以使用指针来修改arr[0]的内容
	int *p = (int *)arr;
	*p = 3;// 这样就可以修改我们想要的内容
	return 0;
}
	 int arr1[5] = {1,2,3,4,5};
	 const int arr2[5] = {1,2,3,4,5};

	const int *p = NULL;
	p = arr1;//合法
	p = arr2//合法
	
	int *q = NULL;
	q = arr1;//合法
	q = arr2;//不合法,类型不相同
	

const - 指针

1. 常量指针:

注意事项:指针指向的地址可以修改

	int a = 3;
	cconst int* p = &a;
	int const* p = &a;//这两种写法都对
	int a = 3;
	int b = 5;

	int* const p = &a;
	p = &b;    //错误,指针指向的地址不可以改
	*p = 6;    //正确,指针指向的值可以修

2. 指针常量

注意事项:指针指向的地址不可以修改

	int a = 3;
	int* const p = &a;
	int a = 3;
	int b = 5;

	int* const p = &a;
	p = &b;    //错误,指针指向的地址不可以改
	*p = 6;    //正确,指针指向的值可以修改

3.常量指针常量

注意事项:指针指向的地址不可以修改,指针指向的值不可以修改

	const int* const p = &a 
	int const* const p = &a
	int a = 3;
	int b = 5;

	int* const p = &a;
	p = &b;    //错误,指针指向的地址不可以改
	*p = 6;    //错误,指针指向的值不可以修改

最后

*虽然在 p 前加上 const 可以禁止指针变量 p 修改变量 a 中的值,但是它只能“禁止指针变量 p 修改”。也就是说,它只能保证在使用指针变量 p 时,p 不能修改 a 中的值。但是不能用 const 可以保护 a 禁止一切的修改,其他指向 a 的没有用 const 修饰的指针变量照样可以修改 a 的值,而且变量 a 自己也可以修改自己的值。下面写一个程序看一下

# include <stdio.h>
int main()
{   
    int a = 3;
    const int *p = &a;
    int * q = &a;
    *q = 5;
    printf("a = %d\n", a);
    a = 6;
    printf("a = %d\n", a);
    //*p = 10;  //这样写就会出错
    return 0;
}

最后引用- 来源,感谢!感谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【const-指针-数组】 的相关文章

随机推荐

  • flutter listview 滚动到底部_(五) Flutter入门学习 之 Widget滚动

    列表是移动端经常使用的一种视图展示方式 在Flutter中提供了ListView和GridView 为了可能展示出更好的效果 我这里提供了一段Json数据 所以我们可以先学习一下Json解析 一 JSON读取和解析 在开发中 我们经常会使用
  • sql注入原理及解决方案

    sql注入原理就是用户输入动态的构造了意外sql语句 造成了意外结果 是攻击者有机可乘 SQL注入 SQL注入 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命令 比如先前的很多
  • 随机练习题:浅浅固定思路

    1 牛牛的10类人 2 牛牛的四叶玫瑰数 3 牛牛的替换 4 牛牛的素数判断 笔者开头感想 如今大部分高校已经开学 当然笔者也不列外 但是由于疫情的原因 笔者被迫在家上网课学习 一脸忧愁 而这恰恰给了笔者自学的机会 相信笔者会加油滴 按照时
  • Acwing-4366. 上课睡觉

    假设最终答案为每堆石子均为cnt个 cnt一定可以整除sum 石子的总数 我们可以依次枚举答案 sum小于等于10 6 所以cnt的数量等于sum约数的个数 10 6范围内 约数最多的数为720720 它的约数个数有240个 int范围内
  • 单边带(SSB)调制技术

    文章目录 单边带 SSB 调制技术 1 双边带简述 2 单边带调制 单边带 SSB 调制技术 1 双边带简述 首先简述一下双边带调制 所谓双边带 DSB double sideband 调制 本质上就是调幅 时域上将基带信号x t 和高频载
  • pytorch FX模型静态量化

    文章目录 前言 一 pytorch静态量化 手动版 踩坑 二 使用FX量化 1 版本 2 代码如下 总结 前言 以前面文章写到的mobilenet图像分类为例 本文主要记录一下pytorchh训练后静态量化的过程 一 pytorch静态量化
  • 特征工程完全总结(Python源码)

    https www jianshu com p 114385e5a757
  • 【Linux】多线程的互斥与同步

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 线程冲突 二 重入与线程安全 1 线程不安全的情况 2
  • svg php,如何加载使用PHP生成的SVG文件?

    我想用 PHP创建一个SVG文件 然后将其包含在HTML文件中 这是我到目前为止 this tutorial之后 svg php header Content type image svg xml gt p gt http www w3 o
  • Session、Token、Cookie的区别及实际使用

    在现代Web开发中 身份验证和会话管理涉及一些基本概念 如Session Token和Cookie 尽管它们都用于管理不同方面的Web会话 但它们之间的差异是很重要的 在本文中 我们将一一介绍Session Token和Cookie的定义
  • 空间直角坐标系右手系和左手系的判定方法及绕轴旋转的正方向

    1 判定坐标系 右手大拇指指向z轴方向 其余四指由x轴握向y轴方向 如果成功 那么判定为右手系 左手大拇指指向z轴方向 其余四指由x轴握向y轴方向 如果成功 那么判定为左手系 坐标系的种类判断成功 那么接下来该判断旋转正方向 2 旋转正方向
  • Linux常用基本操作命令详解(一)

    Linux实用命令 1 前 言 2 常用Linux命令 2 1 常用的系统工作命令 2 2 系统状态检测命令 2 3 工作目录切换命令 3 小结 4 复习巩固题 参考资料 1 前 言 最近学习了有关Linux的一些常用基本命令 在此做个简单
  • python学习笔记 - 如何从几千个文件中寻找出指定的内容

    今天在处理数据时遇到这么个问题 如何从几千个txt文件中找到我想要的内容呢 这是我的实现思路 读取文件 选中指定的内容段 在新路径下保存内容段并命名为之前的文件名 以下是用python实现的代码 有详细注释 usr bin env pyth
  • Selenium Python 教程

    Selenium Python 教程 准备工作 元素定位 控制浏览器操作 Webelement常用方法 鼠标操作 键盘事件 获取断言信息 等待页面加载完成 隐式等待 在不同的窗口和框架之间移动 警告框处理 下拉框选择 文件上传 cookie
  • 网络安全(黑客)自学建议一一附学习路线

    温馨提示 为了避免误入歧途 自学请优先看 网络安全法 下面是一些学习建议 1 多请教有经验的人 切忌钻牛角尖 特别是刚入门的什么都不了解的情况下 可能你花好几天研究的一个东西 人10分钟就能搞定 一定不要做闷葫芦 有问题多问 遇到问题不可怕
  • 机器视觉第二次大作业

    内容 给定图像 消除其中的周期性干扰 以下为处理过程 1 显示图像的傅里叶变换后的频谱和傅里叶变换对数所得的频谱 从图2 可以明显的看出周期性噪声在频谱上的分布 于是在低中高频段上都有分布 但是低 通部分较少 所以考虑使用低通滤波器 此部分
  • java学习笔记13--反射机制与动态代理

    本文地址 http www cnblogs com archimedes p java study note13 html 转载请注明源地址 Java的反射机制 在Java运行时环境中 对于任意一个类 能否知道这个类有哪些属性和方法 对于任
  • StyleGAN2 解释

    本文是 1 的译文 按照作者Connor Shorten 的说法 此博客讨论的是StyleGAN2的诸如weight demodulation path length regularization和去掉progressive growing
  • VS Code Remote基于docker的Python开发环境搭建,ssh免密登录

    win电脑 生产一对公钥与私钥 私钥在win 公钥pub在服务器 ssh keygen 服务器复制私钥和ssh配置 1 root用户进入服务器 cd ssh 复制win电脑上的 ssh id rsa pu到服务器 root ssh 目录下
  • 【const-指针-数组】

    文章目录 const const 数组 const 指针 最后 const const是constant的简写 它是用来定义常量 它限定一个变量不允许被改变 产生静态作用 修饰静态变量 const int a 3 int const a 3