C++之指针运算符(*与&)

本文介绍了C++中的指针和引用的概念及其使用。通过示例展示了如何声明和操作指针,包括一级指针和二级指针,并解释了取地址运算符`&`和间接寻址运算符`*`的用法。同时,阐述了指针和引用作为变量别名的不同之处。

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

C++之指针运算符


取地址运算符&和间接寻址运算符*

#include <iostream>
#include <string>

using namespace std;

int main() {
    system("chcp 65001");
    setlocale(LC_ALL, "zh-CN");
    int x = 0;
    //声明时,变量前加 "基本类型 &" :声明引用变量。它是某个已存在变量的别名
    //即该引用变量名称与原始变量名称都代表同一个变量(地址相同)。
    int &y = x;
    //声明时,变量前加 "基本类型 *" :声明指针变量。它的值是另一个变量的地址。
    int *z;
    z = &x;
    //声明时,变量前加 "基本类型 **":声明二级指针变量。它的值是另一个一级"基本类型 *"指针变量的地址  (指针的指针)。
    int **zz;
    zz = &z;

    cout << "x的地址:" << &x << endl
         << "声明引用变量y:" << y << endl
         << "y的地址:" << &y << endl
         << "一级指针z的值是变量x的地址:" << z << endl
         << "二级指针zz的值是一级指针z的地址:" << zz << endl
         << "一级指针z的地址:" << &z << endl
         << "二级指针zz的地址:" << &zz << endl
         << "*(简接寻址运算符)获取一级指针z所指向的变量x:" << *z << endl
         << "**获取二级指针zz所指向的一级指针z所指向的变量x:" << **zz << endl
         << "*z的地址:&x:" << &*z << endl
         << "**zz的地址:&x:" << &**zz << endl
         << "*zz的地址:&z:" << &*zz << endl;
    return 0;
}
输出:
Active code page: 65001
x的地址:0x62fe14
声明引用变量y:0
y的地址:0x62fe14
一级指针z的值是变量x的地址:0x62fe14
二级指针zz的值是一级指针z的地址:0x62fe08
一级指针z的地址:0x62fe08
二级指针zz的地址:0x62fe00
*(简接寻址运算符)获取一级指针z所指向的变量x:0
**获取二级指针zz所指向的一级指针z所指向的变量x:0
*z的地址:&x:0x62fe14
**zz的地址:&x:0x62fe14
*zz的地址:&z:0x62fe08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值