当前位置: 首页 > news >正文

如何在360网站网页上做笔记360站长工具

如何在360网站网页上做笔记,360站长工具,武汉网页设计培训机构哪里有,南宁京象建站公司文章目录 Q&A and 前言const 修饰基本变量初始化const 对象仅在文件内有效 const 的引用应用 指针与 constconst 修饰类成员函数参考写在最后 Q&A and 前言 Q:简要说一说 C 中的 const 关键字,含义以及常见的使用位置 A:const 是 C…

文章目录

    • Q&A and 前言
    • const 修饰基本变量
      • 初始化
      • const 对象仅在文件内有效
    • const 的引用
      • 应用
    • 指针与 const
    • const 修饰类成员函数
    • 参考
    • 写在最后

Q&A and 前言

Q:简要说一说 C++ 中的 const 关键字,含义以及常见的使用位置

A:const 是 C++ 中的一种关键字,用来对变量加以限制,无法被修改,额…

Q:具体说一下常量指针与指针常量,以及你是如何区分的

A:常量指针是 const pointer,指针常量是 pointer to const,额…

Q:好的,今天的面试到此结束,出去把门带上…


const 关键字是 C++程序语言开发岗位 面试经常考察的一个知识点,这个问题牵涉的考察面特别广,从 const 能问到指针、指针常量、常量指针、指向常量的常量指针、常量引用、常函数,甚至能问到函数的几种传参形式。今天就来看一看 const 关键字的几种用法。

const 修饰基本变量

有时候我们想定义一种值不能被改变的变量。例如,用一个变量来表示缓冲区的大小。使用变量的好处是当我们觉得缓冲区的大小不合适的时候,很容易可以对其进行调整。另一方面,我们应该防止程序一不小心改变了这个值。为了满足这一要求,可以将这一变量定义为 const 类型加以限制:

const int bufferSize = 512;

这样就把 bufferSize 定义成一个常量。任何试图为 bufferSize 赋值的行为都会引发错误。

初始化

const 是英文单词 constant 的缩写形式,表示常数、恒定的意思。使用该关键字修饰变量表示变量是恒定的,不可以改变的。因为 const 对象一旦创建后其值不能被改变,所以 const 对象必须初始化。初始值可以是任何复杂的表达式:

const int i = get_size();  // 正确:运行时初始化
const int j = 42;		  // 正确:编译时初始化
const int k;			  // 错误:没有初始化

不论是常量对象还是非常量对象都可以初始化常量对象,同样的普通对象也可以使用常量对象进行初始化。

int i = 42;
const int ci = i;		// 正确:i的值被拷贝给了 ci
int j = c1;			    // 正确:ci 的值被拷贝给了 j

尽管 ci 是整型常量,但无论如何 ci 中的值还是一个整型数。ci 的常量特征仅仅在执行改变 ci 的操作时才会发挥作用。当用 ci 去初始化 j 时,根本无须在意 ci 是不是一个常量。

const 对象仅在文件内有效

当以编译器初始化的方式定义一个 const 对象时:

const int bufferSize = 512;

编译器将在编译过程中把用到 bufferSize 的地方都替换为 512.

为了执行上述替换,编译器必须知道变量的初始值,如果程序包含多个文件,则每个用了 const 对象的文件必须得能访问到它的初始值才行。要做到这一点,就必须在每一个用到变量的文件中都有对它的定义。为此,在默认情况下,const 对象被设定为仅在文件内有效。当多个文件中出现同名的 const 变量时,其实等于在不同的文件中分别定义了独立的变量。

有些时候,我们希望在一个文件中定义 const 变量,在其他文件中声明并使用。解决的方法是,对于 const 变量不管是声明还是定义都增加 extern 关键字,这样只需要定义一次就可以了:

// file1.cpp 定义并初始化一个常量,该常量能被其他文件访问
extern const int bufferSize = fcn();
// file2.h
extern const int bufferSize;	// 与 file1.cpp 中定义的 bufferSize 是同一个

如果想在多个文件之间共享 const 对象,必须在变量的定义之前添加 extern 关键字。

const 的引用

引用可以绑定在常量对象上,也可以绑定在非常量对象上。无论引用的对象是常量还是非常量都不会影响引用和对象的绑定关系本身。只有那些不能通过引用改变它绑定的对象的引用,才被称为常量引用。换言之,常量运用不能通过引用改变它绑定的对象。

常量引用仅对引用可参与的操作做出了限定,对于引用的对象本身是不是一个常量未做限定。因为对象可能是个非常量,所以允许通过其他途径改变它的值:

int i = 42;
int &r1 = i;		// 引用 r1 绑定对象 i
const int &r2 = i;	// r2 也绑定对象 i,但是不允许通过 r2 修改 i 的值
r1 = 0;				// r1 并非常量,可以通过引用 r1 修改 i
r2 = 0;				// 错误:r2 是一个常量引用

应用

常量引用主要用于以下几种情况:

函数参数传递:在函数定义中,使用常量引用作为参数,可以确保传递给函数的参数不会被修改,并且避免了不必要的数据复制。

void myFunction(const int& x) {// 在函数中不能修改 x 的值// 可以安全地使用 x
}

遍历容器:使用范围 for 循环遍历容器时,如果不需要修改容器的元素,可以使用常量引用来提高性能并确保容器不会被修改。

std::vector<int> numbers = {1, 2, 3, 4, 5};
for (const auto& num : numbers) {// 通过常量引用遍历容器,避免了不必要的复制,并确保容器不会被修改
}

返回值类型:在函数返回引用类型时,如果返回的对象是常量且不应该被修改,可以使用常量引用作为返回类型,以避免不必要的复制。

const std::string& getMessage() {static std::string message = "Hello, world!";return message; // 返回常量引用,避免了不必要的复制,并确保返回的对象不会被修改
}

总的来说,常量引用是一种有效的方式,用于提高性能、确保数据的不可修改性,并避免不必要的数据复制。对于确定不需要修改的对象,建议写成常量引用的形式。

指针与 const

指针与 const 主要包括以下内容:

  • pointer to const
  • const pointer
  • const pointer points to const

如果对这些内容已经了然于胸,完全可以跳过这一小节,如果有不清楚的地方,可以参考 【C/C++基础】指针与const。

const 修饰类成员函数

在自定义的数据类型(类)中,常常会发现某些成员函数的函数参数列表之后有 const 关键字,这样的成员函数被称为常量成员函数。

const 修饰类成员函数,其目的是防止成员函数修改被调用对象的值,如果我们不想修改一个调用对象的值,所有的成员函数都应当声明为 const 成员函数,这也是建议的写法。

参考

《C++ Primer 中文(第5版)》

写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家对 const 有更完整的整理或更清晰的认识,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

http://www.ritt.cn/news/19424.html

相关文章:

  • 枣庄网站制作网站推广策划书模板
  • 河北企业建站系统信息百度在线翻译
  • 平台制作网站公司霸屏seo服务
  • 腕表之家网站如何做网络宣传推广
  • 擦边球做网站挣钱百度小说搜索风云榜总榜
  • 动漫制作专业主修课程seo推广优化外包公司
  • 哪个网站可以做字体治疗腰椎间盘突出的特效药
  • 网站建设及推广培训杭州seo网站排名
  • 做树状图的网站推广赚佣金的软件排名
  • 建设科普网站的意义石家庄seo管理
  • 公司做网站找谁公司做网站找谁网店推广的作用是
  • jsp网站 iis站点推广是什么意思
  • 哪个网站推广好微商店铺怎么开通
  • 网站导航栏如何优化微信销售平台
  • 政府网站建设招标友链交易交易平台
  • 做网站后端语言用什么网上推广平台有哪些
  • 焦作app网站建设爱站网爱情电影网
  • 网站开发电脑配置促销方案
  • 网站的页面布局是什么样的安徽网站开发哪家好
  • 村网站建设计划书长沙有实力seo优化公司
  • 桓台网站制作国外网站制作
  • 东莞百度seo推广机构seo网络推广技术
  • 做网站看销售网站怎么做
  • 无锡网站设计政府免费培训面点班
  • 网站建设需求模板下载广告网站有哪些
  • 成都个人网站建设seo课程简介
  • 免费自助建站简单的html网页制作
  • 企业网站开发需要自己的网站怎么样推广优化
  • 那个网站做logo兼职昆明网络推广公司排名
  • 电子商务网站建设百度文库网页怎么优化