【为什么】引用和指针

简介: 【为什么】引用和指针

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

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

image.gif

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

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

image.gif

int myFirstNumber = 25;
int mySecondNumber = 20;
int &myReference = myFirstNumber;
myReference = mySecondNumber;
printf("%d", myFristNumber);

image.gif

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

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

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

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

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

image.gif

以下是指针和引用的等价

int& Number = myOtherNumber;
Number = 25;

image.gif

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

int* pNumber = &myOtherNumber;
*pNumber = 25;
相关文章
|
6天前
|
存储 Java C++
C++ 引用和指针:内存地址、创建方法及应用解析
C++中的引用是现有变量的别名,创建时需用`&`运算符,如`string &meal = food;`。指针存储变量的内存地址,使用`*`创建,如`string* ptr = &food;`。引用必须初始化且不可为空,而指针可初始化为空。引用在函数参数传递和提高效率时有用,指针适用于动态内存分配和复杂数据结构操作。选择使用取决于具体需求。
41 9
|
6天前
|
存储 安全 C语言
引用指针
引用指针
16 1
|
6天前
|
存储 安全 C++
在C++指针和引用
在C++指针和引用
|
6天前
|
存储 算法 C语言
通过指针引用数组元素
通过指针引用数组元素
21 0
|
6天前
|
存储 算法 C语言
通过指针引用多维数组
通过指针引用多维数组
12 0
|
6天前
|
存储 安全 C++
CPP的指针和引用
CPP的指针和引用
21 0
C4.
|
6天前
|
存储 程序员 C语言
C语言中如何通过指针引用字符串
C语言中如何通过指针引用字符串
C4.
21 0
C4.
|
6天前
|
算法 安全 程序员
C语言中如何通过指针引用数组
C语言中如何通过指针引用数组
C4.
28 0
|
6天前
|
存储 程序员 C++
C++的指针和引用
C++的指针和引用
|
6天前
|
存储
引用和指针的区别
引用和指针的区别
10 3

热门文章

最新文章