首页 > 系统相关 >C++(引用符号&、访问内存地址&)

C++(引用符号&、访问内存地址&)

时间:2023-12-24 13:55:41浏览次数:43  
标签:变量 符号 int C++ 运算符 引用 内存地址 ptr

在C++中,引用符号 & 和访问内存地址的 & 运算符有不同的用途和含义。

  1. 引用符号 &:创建引用

    • 使用 & 符号可以创建引用,即给一个变量起一个别名。引用是一个别名,它与原变量共享相同的内存地址。
    • 引用在声明时必须初始化,并且一旦初始化后,不能再引用其他变量。
    int x = 10;
    int& ref = x;  // 创建整数引用 ref,它是 x 的别名
    
    cout << x << endl;   // 输出 10
    cout << ref << endl; // 输出 10
    
    x = 20;
    cout << ref << endl; // 输出 20,因为 ref 是 x 的别名
    

    在这个例子中,ref 是变量 x 的引用,它们共享相同的内存地址,因此修改其中一个会影响另一个。

  2. 访问内存地址的 & 运算符:获取变量的内存地址

    • 使用 & 运算符可以获取变量的内存地址。
    • 通常与指针一起使用,将变量的地址存储在指针中。
    int y = 30;
    int *ptr = &y;  // 创建整数指针 ptr,存储变量 y 的内存地址
    
    cout << &y << endl;   // 输出变量 y 的内存地址
    cout << ptr << endl;  // 输出变量 y 的内存地址,与上一行相同
    
    cout << *ptr << endl; // 输出变量 y 的值,通过指针访问
    

    在这个例子中,&y 表示变量 y 的内存地址,而 ptr 存储了变量 y 的地址。通过 *ptr 可以访问存储在该地址上的值。

总结:

  • & 符号在不同的上下文中有不同的含义。
  • 在声明中,它用于创建引用,即变量的别名。
  • 在表达式中,作为运算符,它用于获取变量的内存地址


标签:变量,符号,int,C++,运算符,引用,内存地址,ptr
From: https://www.cnblogs.com/keye/p/17924313.html

相关文章

  • c++智能指针和java垃圾回收对比
    c++智能指针和java垃圾回收对比我们都知道C++和java语言的一个巨大差异在于垃圾回收方面,这也是C++程序开发者和java程序开发者之间经常讨论的一个话题。在C++语言中,一般栈上的内存随着函数的生命周期自动进行回收,但是堆上内存(也就是自己new/malloc出来的空间),需要自己手动进行del......
  • C++(指针常量、常量指针)
    在C++中,常量指针和指针常量是两个不同的概念,它们涉及到指针和常量的组合。让我们来详细解释它们的含义:常量指针(ConstantPointer):一个常量指针是指针本身是常量,它指向的内容可以被修改。一旦指针被初始化指向某个变量,就不能再指向其他变量。通过指针可以修改所指向的变量的......
  • C++出现“printf/cout不明确”的问题的原因和解决方法(转)
    如果你有幸看到这个博客,那么我猜你应该已经碰上这个问题,而且正急着寻求方法,因此,我先把解决方法用最简单的一句话写出来解决方法为:**将文件中原有的usingnamespacestd;删除后保存cpp文件,再加上usingnamespacestd;保存cpp文件。问题即可解决**如果根据上述方法已经解决了这个问......
  • Qt/C++控件设计器/属性栏/组态/可导入导出/中文属性/串口网络/拖曳开发
    一、功能特点自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。拖曳到画布自动生成对应的控件,所见即所得。右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。独创属性栏文字翻译映射机制,效率极高,可以非常方便拓展其他语言的属性......
  • 【C++】将 C++ 程序 以 Windows Service 服务部署
    服务主函数1)先进行安装your_program.exeinstall2)在进入电脑管理-服务,进行启动3)若要多启动方式,在下面主函数中,进行启动类别判断是服务形式启动还是控制台程序启动int__cdecl_tmain(intargc,TCHAR*argv[])服务代码作为程序入口代码,将自己程序的主函数代码,访入SvcInit函......
  • C++简单实现list链表数据结构(一)
    链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域C++STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空......
  • C++知识点总结
    第二章1.基本数据类型int有16位,即两个字节,char只占一个字节。在VisualC++6.0中,对float提供6位有效数字,对double提供15位有效数字,并且float和double的数值范围不同。对float分配4个字节,对double和longdouble分配8个字节。2.常变量关键字const。变量的值在程序运行期间不能改......
  • C++:最大值最小值及其索引
    std::max_element和std::min_element 是C++标准库<algorithm>中的函数,可以得到数组和向量(vector)的最值及其索引intcard[6]={1,2,3,4,5,6}intmaxValue=*max_element(card.begin(),card.end());intminValue=*min_element(card.begin(),card.end());intmaxPositi......
  • C++ --- 函数重载
    什么是函数重载函数重载: 是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。函数重载是C++在C语言基础上进行的改进,解决了C语言同名函数无法服务不同类型......
  • C++U5-11-特殊二叉树
    学习目标 完全二叉树:二又树拥有的性质,在完全二叉树中都拥有 性质 练习1 练习2 练习3编程题:[完全二叉树的叶子结点]【算法分析】递归,前序遍历输出。【参考代码】#include<iostream>usingnamespacestd;constintSIZE=1010;structnode{......