首页 > 其他分享 >引用和指针

引用和指针

时间:2023-02-18 12:44:36浏览次数:52  
标签:25 myFirstNumber int Number myNumber 指针 引用

在C++中,&符号有几种不同的含义,取决于上下文。如果&是引用操作的话,它可以创建一个别名或替代名称来引用另一个变量。例如:

int myNumber = 10; 
int& Number = myNumber; // Number is a reference to myNumber 
Number = 25; // This changes both Number and myNumber to 25

&也可以用作取地址运算符,它可以返回一个变量的内存地址。例如:

int myNumber = 10; 
int* ptr = &myNumber; // ptr is a pointer that stores the address of myNumber 
cout << ptr << endl; // This prints the address of myNumber 
cout << *ptr << endl; // This prints the value of myNumber by dereferencing ptr
int myFirstNumber = 25;
int mySecondNumber = 20;
int &myReference = myFirstNumber;

myReference = mySecondNumber;

printf("%d", myFristNumber);

这段代码的输出是20。原因是:

myReference是myFirstNumber的引用,所以它们指向同一个内存地址。当你把mySecondNumber的值赋给myReference时,你也改变了myFirstNumber的值。所以,当你打印myFirstNumber时,它显示了20,而不是25。

如果你想保留myFirstNumber的原始值,你可以使用指针而不是引用。指针只存储一个变量的地址,而不会改变它的值。

在类中时,引用的值必须由构造函数按以下方式设置:

CMyClass::CMyClass(int &variable) : m_MyReferenceInCMyClass(variable)
{
    // constructor code here
}

以下是指针和引用的等价

int& Number = myOtherNumber;
Number = 25;

它可以用指针等效代码如下:

int* pNumber = &myOtherNumber;
*pNumber = 25;

标签:25,myFirstNumber,int,Number,myNumber,指针,引用
From: https://www.cnblogs.com/wozhuyinghao/p/17132347.html

相关文章

  • 使用数组的指针
    您还可以创建指向数组的指针,这是按如下方式完成的int*pArray;pArray=newint[6];这将创建一个指针,pArray,并使其指向一个包含六个元素的数组。另一种不使用动态内存......
  • 指向类的指针
    还有一些关于指针的其他注意事项,其中之一是结构或类。你可以定义一个类如下:classMyClass{public:intm_Number;charm_Character;};然后,您可以定义一个......
  • 将指针传递给函数
    将指针传递给函数的能力非常有用,但也很容易掌握。如果我们要编写一个程序,接受一个数字并将其加五,我们可能会编写如下内容:#include<stdio.h>voidAddFive(intNumber)......
  • C语言填空:利用指针形成逆序字符串函数
    #include<stdio.h>【1】//逆序输出任意字符串voidseverse_string(char【2】str){intlen=strlen(str);char*left=str;char*right=str+le......
  • C语言填空:利用数组形成逆序字符串的函数,不用指针
    #include<stdio.h>【1】//逆序输出任意字符串voidseverse_string(chararr【2】){intlen=strlen(arr);intleft=0;intright=len-1;......
  • 指针,动态内存的例子
    #include<stdio.h>int*pPointer;voidSomeFunction();{intnNumber;nNumber=25;//makepPointerpointtonNumber:pPointer=&nNumb......
  • 智能指针 shared_ptr weak_ptr shared_from_this 笔记
    图片来自std::enable_shared_from_this有什么意义?-孔洽孔洽的回答-知乎https://www.zhihu.com/question/30957800/answer/2700292012答案参考一下,应该不完全对当......
  • 我应该使用按值调用还是按引用调用?
    这取决于您要实现的目标:如果要更改传递的对象,请通过引用调用或使用指针;例如voidf(X&);或voidf(X*);如果你不想更改传递的对象并且它很大,则通过const引用调用;例......
  • 为什么C++既有指针又有引用?
    C++从C继承了指针,所以我不能在不导致严重的兼容性问题的情况下删除它们。引用在很多方面都很有用,但我在C++中引入它们的直接原因是为了支持运算符重载。例如:void......
  • java jna框架免注册调用大漠插件及指针参数方法调用
    大漠dll说明1、dm.dll为com类型组件。2、DmReg.dll免注册为常规dll。学习研究时的历程1、因为大漠是com组件,所以可以使用jacob调用大漠。但是不支持免注册dll的使......