目录:
定义-间接运算符是什么意思?
在C#上下文中,间接运算符是用于获取指针指向的变量的值的运算符。 指向变量的指针提供对存储在其内存地址中的变量的值的间接访问,而间接运算符取消引用该指针,并在该存储位置返回变量的值。 间接运算符是由符号(*)表示的一元运算符。
可以在指向整数的指针,指向整数的一维数组,指向char的指针以及指向未知类型的指针中使用间接运算符。
Techopedia解释了间接运算符
(*)符号用于声明指针类型和执行指针间接操作,而“ address-of”运算符()返回变量的地址。 因此,间接运算符和地址运算符彼此相反。
C#允许仅在不安全区域中使用指针,这意味着公共语言运行时(CLR)未验证该区域内代码的安全性。 在不安全区域中,允许间接操作符读取和写入指针。 以下C#语句说明了间接运算符的用法:
- 整数a = 1,b; //第1行
- int * pInt =&a; //第2行
- b = * pInt; //第3行
应该使用间接运算符取消引用有效指针,该指针的地址与其指向的类型对齐,以避免在运行时发生未定义的行为。 不应将其应用于void指针或非指针类型的表达式,以避免编译器错误。 但是,在将空指针转换为正确的指针类型之后,可以使用间接运算符。
在单个语句中声明多个指针时,间接操作符应仅使用基础类型写入一次,并且对于每个指针名称都不应重复。 与C和C ++不同,间接操作符在C#中是分布式的。 将间接运算符应用于空指针时,将导致实现定义的行为。 由于此操作符是在不安全的上下文中使用的,因此在编译过程中,应先使用关键字unsafe和/ unsafe选项。 该定义是在C#上下文中编写的