C使用const详细(学习笔记)

1、对形参使用const,告诉编译器,该函数不能修改arr指向的数组中的内容。

int sum(const int * arr,int n);

2、指向const的指针不能用于改变值
3、把const数据或非const数据的地址初始化为只想const的指针或为其赋值时合法的

//带const的指针,可以改变指向的地址。只是不能通过指针改变量值。
double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double locked[4]={0.08,0.075,0.0725,0.07};
const double * pc=rates;//有效
pc=locked;//有效。
pc=&rates[3];//有效

4、只能把非const数据的地址赋给普通指针。很合理,因为普通指针可以修改变量值,但常量值不允许修改。

double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double locked[4]={0.08,0.075,0.0725,0.07};
double * pc=rates;//有效
pc=locked;//无效。
pc=&rates[3];//有效

5、不要把常量数组传给形参没有const的函数

mult_array(double * arr,int n);const double locked[4]={0.08,0.075,0.0725,0.07};
mult_array(locked,4);//不要这么干。函数可能会修改数组的值,但常量不允许修改。

6、const放在*的后面,可以声明一个不能指向别处的指针。可以通过指针修改变量

double rates[5]={88.99,100.12,59.45,183.11,340.5};
double * const pc=rates;
pc=&rates[2];//不允许。
*pc=92.99;//有效。

7、const在*的前后使用2次,声明的指针既不能指向别处,又不能修改变量。

double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double * const pc=rates;
pc=&rates[2];//不允许
*pc=92.99;//不允许

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

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

相关文章

景联文科技提供4D-BEV标注工具:提升自动驾驶感知能力的精准数据支持

4D-BEV标注是一种用于自动驾驶领域的数据标注方法。在3D空间的基础上,加入了时间维度,形成了四个维度。这种方法通过精准地跟踪和记录动态对象(如车辆、行人)的运动轨迹、姿势变化以及速度等信息,全面理解和分析动态对…

【Python机器学习】零基础掌握DictVectorizer特征提取

如何有效地处理和转换非数值型的数据,以便能够用于机器学习模型? 在实际生活中,特别是在数据分析和机器学习领域,经常会遇到需要处理的数据并不都是数值型的。比如在电商网站的用户行为分析中,可能会记录用户的性别、购买产品类型、支付方式等信息。这些数据中有些是分类…

avaScript 条件分支语句以及示例和详细代码解释为什么这样写呢(1)

在JavaScript中,条件分支语句主要有if语句、else if语句和else语句。条件分支语句用于根据不同的条件执行不同的代码块。下面是一个使用条件分支语句的示例代码: javascript let num 10;if (num > 0) {console.log("num是一个正数"); } e…

Java中JVM、JRE和JDK三者有什么区别和联系?

任何语言或者软件的运行都需要环境。就像人要生活在空气中,鱼要活在水中,喜阴植物就不能放在阳光下暴晒一样,任何对象个体的存在都离不开其所需要的环境,编程语言亦是一样的。 java 语言的开发运行,也离不开 Java 语言…

vue中前端导出excel的两种方法

vue中前端导出excel方法 其实前端导出和后端导出的处理方式很类似 我们这样主要是根据后端接口返回的不分页的列表来进行整体导出功能的实现 依赖文件 可以直接cv到项目中 utils下的 Export2Excel.js文件 require(script-loader!file-saver); require(script-loader!xlsx/d…

crossover23.6闪亮登场发布啦,2023最新功能解析

CrossOver刚刚更新了23.6版本,新增了多款游戏的支持,快来看看你想玩的游戏在不在里面吧。点击这里立即下载最新版CrossOver。 软件介绍 CrossOver 23.6 让Mac可以运行Windows程序的工具 已通过小编安装运行测试 100%可以使用。 CrossOver for Mac 23.…

OKLink携手CertiK在港举办Web3生态安全主题论坛

2023年10月23日,OKLink与CertiK共同发起的Web3生态安全主题论坛在香港铜锣湾拉开帷幕。本次论坛由OKLink和CertiK主办,香港投资推广署独家支持,聚焦如何构建安全可靠的Web3生态系统议题,同时深入剖析这一进程中所面临的潜在挑战。…

企事业单位/公司电脑文件透明加密保护 | 防泄密软件\系统!

推荐——「天锐绿盾电脑文件防泄密系统」 一款全面的企业/公司数据透明加密防泄密系统,旨在从源头上保障数据的安全和使用安全。 PC访问地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 它具有以下特点&#xff1a…

第6周 .NET

好嘛!本来以为上周SQL Server环境配置等已经够恶心了,没想到这周又得去搞所谓的Microsoft Visual Studio 2005了。 首先非常离谱的是,这个Microsoft Visual Studio 2005如果就是指Visual Studio 2005,那么已经是8年前的老的不行的…

TensorFlow图像多标签分类实例

接下来,我们将从零开始讲解一个基于TensorFlow的图像多标签分类实例,这里以图片验证码为例进行讲解。 在我们访问某个网站的时候,经常会遇到图片验证码。图片验证码的主要目的是区分爬虫程序和人类,并将爬虫程序阻挡在外。 下面…

Python超入门(6)__迅速上手操作掌握Python

# 26.函数和参数 # 注意:有参函数和无参函数的名字要不同 def user(): # 无参函数print("hello world!")def user1(my_id): # 有参函数print(my_id)def user2(first_name, last_name): # 有参函数print(fMy name is {first_name} {last_name})print(&…

【机器学习】迁移学习(Transfer)详解!

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是…

微信小程序云开发笔记-初始化商城小程序

缘起:由于痴迷机器人,店都快倒闭了,没办法,拿出点精力搞一下店里的小程序,要多卖货才能活下来搞机器人,在此记录一下搞小程序的过程,要不然搞完又忘了。腾讯的云开发,前端和后端都有…

改变光标形状的多种方式

一,用css的方式进行添加属性: #div{cursor:pointer; } 二,使用js的方式改变光标的状态: 1 // 使用在元素的标签上的事件 2 // 第一种方式 3 onmouseover"this.style.cursormouseHand" 4 5 // 第二种方式 6 onmouseo…

Linux阻塞IO(高级字符设备二)

阻塞IO属于同步 IO,阻塞IO在Linux内核中是非常常用的 IO 模型,所依赖的机制是等待队列。 一、等待队列介绍 在 Linux 驱动程序中,阻塞进程可以使用等待队列来实现。等待队列是内核实现阻塞和唤醒的内核机制,以双循环链表为基础结…

C笔记:引用调用,通过指针传递

代码 #include<stdio.h> int max1(int num1,int num2) {if(num1 < num2){num1 num2;}else{num2 num1;} } int max2(int *num1,int *num2) {if(num1 < num2){*num1 *num2; // 把 num2 赋值给 num1 }else{*num2 *num1;} } int main() {int num1 0,num2 -2;int…

SLAM从入门到精通(三边测量法详解)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 三边测量&#xff0c;或者说叫三角定位&#xff0c;是定位系统中很常见的一种测量方法。它最主要的原理就是依靠已有的三个特征坐标和半径&#xf…

Windows10系统安装telnet命令

简介 telnet命令可以测试目标服务器端口是否开通&#xff0c;使用命令 telnet ip地址 端口&#xff0c;输入命令后回车&#xff0c;如果进入输入状态&#xff0c;则表示目标服务器端口已开通&#xff0c;可以通过外网访问 Windows10系统安装步骤 1.打开控制面板 2.选择程序…

Hadoop3教程(三十一):(生产调优篇)异构存储

文章目录 &#xff08;157&#xff09;异构存储概述概述异构存储的shell操作 &#xff08;158&#xff09;异构存储案例实操参考文献 &#xff08;157&#xff09;异构存储概述 概述 异构存储&#xff0c;也叫做冷热数据分离。其中&#xff0c;经常使用的数据被叫做是热数据&…

Python Opencv实践 - 车辆统计(2)检测线绘制,车辆数量计数和显示

针对我所使用的视频&#xff0c;对上一节的代码进行了修改&#xff0c;增加了更多参数。 Python Opencv实践 - 车辆统计&#xff08;1&#xff09;读取视频&#xff0c;移除背景&#xff0c;做预处理_亦枫Leonlew的博客-CSDN博客示例中的图像的腐蚀、膨胀和闭运算等需要根据具…