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

网站开发demo是什么网页模板之家

网站开发demo是什么,网页模板之家,成都疫情实时状况,招聘网58同城求职信息面试题:C指针和引用有什么区 C指针和引用有什么区别? 在 C 中,指针和引用都是用来访问其他变量的值的方式,但它们之间存在一些重要的区别。了解这些区别有助于更好地理解和使用这两种工具。 01 指针 指针(Pointer…

面试题:C++指针和引用有什么区

C++指针和引用有什么区别?

在 C++ 中,指针和引用都是用来访问其他变量的值的方式,但它们之间存在一些重要的区别。了解这些区别有助于更好地理解和使用这两种工具。

01

指针

指针(Pointer)

定义:

指针是一个变量,它存储了一个内存地址。

指针的类型是指向的数据的类型。

声明:

指针通常用星号 * 来声明,例如 int *p; 表示 p 是一个指向 int 类型的指针。

赋值:

指针可以通过赋值操作来指向不同的地址,例如 p = &a;,其中 &a 是变量 a 的地址。

指针可以指向 nullptr 或 NULL(在 C++11 之后推荐使用 nullptr)表示不指向任何对象。

解引用:

使用星号 * 来解引用指针并访问它所指向的数据,例如 *p = 10;。

内存管理:

指针需要手动分配和释放内存(使用 new 和 delete)。

指针可以指向任何类型的内存,包括未初始化的内存区域。

安全性

使用指针时需要特别小心,因为访问无效或已释放的内存可能导致程序崩溃或未定义行为。

代码示例:

#include <iostream>
int main() {    int a = 10;    int *p = &a;  // p 指向 a    *p = 20;      // 修改 a 的值    std::cout << "a: " << a << std::endl;  // 输出 20
    p = nullptr;  // p 不再指向任何东西    *p = 30;      // 错误!p 为 nullptr    return 0;}

02

引用

引用(Reference)
定义

引用是一个别名,它是一个已经存在的变量的另一个名字。

引用不是真正的变量,它不占用额外的存储空间。

声明

引用通常用 & 符号声明,例如 int &r = a; 表示 r 是变量 a 的引用。

赋值

引用一旦初始化后就不能更改,也就是说,不能重新绑定到另一个对象。一旦绑定后,引用始终指向同一个对象。

初始化时必须立即绑定到一个对象,不能是 nullptr。

解引用:

引用本身就是一个左值(可以出现在赋值的左边),因此不需要解引用即可访问其绑定的对象,例如 r = 10;。

内存管理:

引用本身不涉及内存分配,它只是现有对象的一个别名。

引用通常用于传递大对象或作为函数返回值,以避免不必要的拷贝。

安全性:

使用引用相对安全,因为引用总是有效,不会指向不存在的对象。

代码示例:

#include <iostream>
int main() {    int a = 10;    int &r = a;  // r 是 a 的引用    r = 20;      // 修改 a 的值    std::cout << "a: " << a << std::endl;  // 输出 20
    // 下面的语句是非法的,因为引用不能重新绑定到另一个对象    // int b = 30;    // r = b;  // 错误!r 不能重新绑定
    return 0;}03

引用不占用内存空间

看下面示例代码:

#include <iostream>
int main() {    int a = 9;    int& b = a;  // b 是 a 的引用    int* p = &a;
    std::cout << "a 的地址: " << &a << std::endl;    std::cout << "b 的地址: " << &b << std::endl;    std::cout << "p 的地址:" << &p << std::endl;
    return 0;}

运行输出:

可以看到引用b的地址和变量a的地址是一样的,b就是a的一个别名,它不涉及到额外的内存分配。但是指针p是一个变量,指针本身也会占用内存。

在 C++ 中,引用的内存分配如下:

变量 a:

分配一块内存空间存储 a 的值。

引用 b:

不需要分配新的内存空间,它直接绑定到 a 上。

因此,无论在代码中创建多少个引用,它们都不会占用额外的内存空间,只会占用现有变量的内存。

04
总结

指针:

指针是一个变量,存储地址。

指针本身占用存储空间。

指针可以初始化为空,可以重新指向其他地址。

引用:

引用不是一个变量,而是现有变量的别名。

引用本身不占用存储空间。

引用不能初始化为空,一旦初始化后不能重新绑定到另一个对象

http://www.dtcms.com/wzjs/371656.html

相关文章:

  • 网络推广策划案例aso优化分析
  • 设计手机网站软件seo代码优化工具
  • 美业设计网站优化设计七年级下册语文答案
  • 网站如何做品牌宣传海报最近国际时事热点事件
  • 公司网上注册在哪个网站天津的网络优化公司排名
  • 学做日料的网站全网引擎搜索
  • 做网站项目前怎么收集需求seo搜索引擎优化题库
  • 网站建设主题有哪些注意事项怎么查百度收录
  • 做商城网站哪家好百度百科词条创建入口
  • 营销型网站建设明细报价表什么推广软件效果好
  • 做网站 需要什么样的服务器冯耀宗seo教程
  • 国务院政府网站建设指引优化设计答案五年级下册
  • 南京商城网站建设外贸网站seo推广教程
  • 韩国跨境电商有哪些平台无锡seo公司
  • iis怎么做ip网站吗夫唯seo怎么样
  • 平安保险网站深圳知名seo公司
  • 网站建设跑业务百度最新人工智能
  • 创新的沈阳网站建设苏州旺道seo
  • wordpress下载站地推接单正规平台
  • 宁乡网站建设网站推广入口
  • 怎么做淘宝客网站和APP怎么自己做一个网页
  • 做微信营销网站建设查域名网站
  • 濮阳做网站的公司关键词排名优化提升培训
  • vscode 网站开发精准推广引流5000客源
  • 企业网站建设管理视频武汉seo优化顾问
  • 泊头网站建设的有哪些信阳百度推广公司电话
  • 杭州市上城区建设局网站怎么发布信息到百度
  • 做网上贸易哪个网站好友情链接的作用大不大
  • 六安网站制作公司排名市场营销策划方案模板
  • 丹东网站建免费网站免费