C++符号*(星号)和&(引用符号)不同的含义

Unreal Engine C++(以及C++语言中),符号*(星号)和&(引用符号)有不同的含义,具体取决于它们在代码中的位置。它们的意义通常与指针和引用相关联。下面是对这两个符号的总结,包括它们在不同上下文中的用法。

1. *(星号)

*主要用于指针,具体含义根据位置不同可以分为两种:

1.1 声明指针

在声明变量时,*用于表示该变量是一个指针,指向某个类型的内存地址。

int* Ptr; // 声明一个指向int类型的指针

这个例子表示Ptr是一个指针,指向一个int类型的数据。

1.2 访问指针所指向的数据(解引用)

当你使用*操作符放在指针变量前时,表示访问该指针指向的值,即"解引用"指针。

int Value = 10; int* Ptr = &Value; // Ptr指向Value的地址 int DereferencedValue = *Ptr; // 解引用,DereferencedValue等于10

通过*Ptr,你可以访问并修改Value的值。


2. &(引用符号)

&主要用于引用和取地址操作,同样根据上下文有不同的含义:

2.1 取地址操作

&用于变量前面时,它表示取变量的内存地址。

 

int Value = 10; int* Ptr = &Value; // 获取Value的地址,并将其赋值给指针Ptr

在这个例子中,&Value表示获取Value的内存地址。

2.2 声明引用

在声明函数参数或变量时,&可以用于创建一个引用。引用是原变量的别名,修改引用即修改原变量。

int Value = 10; int& Ref = Value; // Ref是Value的引用 Ref = 20; // 通过Ref修改Value的值,Value现在是20

与指针不同,引用不能为null,而且必须在声明时初始化。

2.3 引用作为函数参数

&用于函数参数时,表示该参数是按引用传递的,这样可以避免传递数据的拷贝,直接对原始数据进行操作。

 

void ModifyValue(int& Ref) { Ref = 30; // 通过引用修改传递进来的变量 } int Value = 10; ModifyValue(Value); // 传递Value的引用,Value变成30

通过引用传递参数,可以减少内存拷贝,特别是在处理大数据结构时更加高效。


3. 总结用法

  • *(星号):

    • 声明指针:用于指针类型声明,指向某个内存地址。例如:int* Ptr;
    • 解引用指针:访问指针指向的实际数据。例如:int Value = *Ptr;
  • &(引用符号):

    • 取地址:用于获取变量的内存地址。例如:int* Ptr = &Value;
    • 引用声明:用于创建一个引用(别名)。例如:int& Ref = Value;
    • 按引用传递:用于函数参数,允许函数直接操作原始数据。例如:void Function(int& Ref)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值