c语言间接寻址运算符,间接寻址运算符:*

本文详细解读了C++中的间接寻址运算符(*),探讨了其在指针和内存访问中的作用,包括取消引用、不同类型指针的处理以及无效指针的注意事项。通过示例展示了如何使用指针进行一级、二级甚至多级间接访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

间接寻址运算符:*

03/01/2013

本文内容

* cast-expression

备注

一元间接寻址运算符 (*) 取消引用指针;即它将指针值转换为左值。间接寻址运算符的操作数必须是指向类型。间接表达式的结果是指针类型派生的类型。使用 * 运算符在此上下文中与其含义不同用作二元运算符时,是相乘。

如果操作数指向功能,结果是操作指示符。如果它指向存储位置,则结果是指定存储位置的左值。

间接寻址运算符可能请使用取消引用指针为指针。例如:

// expre_Indirection_Operator.cpp

// compile with: /EHsc

// Demonstrate indirection operator

#include

using namespace std;

int main() {

int n = 5;

int *pn = &n;

int **ppn = &pn;

cout << "Value of n:\n"

<< "direct value: " << n << endl

<< "indirect value: " << *pn << endl

<< "doubly indirect value: " << **ppn << endl

<< "address of n: " << pn << endl

<< "address of n via indirection: " << *ppn << endl;

}

如果该指针的值无效,则结果是未定义的。下面的列表包含无效的指针值的一些最常见的情况。

指针是一个 null 指针。

指针指定在引用时不可见的本地项目的地址。

指定用于指针所指向的对象的类型不正确对齐的地址。

指针指定执行程序不使用的地址。

请参见

参考

概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值