【C++】指针与引用

💦指针

指针是一个值为内存地址的变量(或数据对象)
在这里插入图片描述
在这里插入图片描述

#include <iostream>

using namespace std;
int main()
{
    //声明指针
    int n = 1;
    int* ptr_n = &n;
    //使用指针可以间接获取数据,使用变量名是直接获取数据,使用指针比直接使用变量的代价要高。
    //可以使用间接运算符* 获取指针变量所指向内存空间的值
    cout << ptr_n << endl;
    cout << *ptr_n << endl;
}

注意不能简单地将整数赋值给指针。
要将数字值作为地址来使用,必须通过强制类型转换

int* ptr = (int*)0xB80000000;

💦间接运算符*

在这里插入图片描述

💦特殊的char*

    //c语言中,并不存在字符串类型,而是使用char[]来表示字符串
    char name[] = "孙悟空";    //字符串就是一个特殊地字符数组,最后一个元素为\0
    cout << sizeof(name) << endl;
    char* ptr_name = name;
    cout << ptr_name << endl;
    char ch = 'A';
    char* ptr_char = &ch;
    //因为在打印char*类型元素时,编译器会默认这应该是一个字符串,但在这里,并不明确ptr_char有多少空间
    //就会出错
    cout << ptr_char << endl;

在这里插入图片描述

💦万能指针void*

在这里插入图片描述

💦空指针

在这里插入图片描述

💦引用

在这里插入图片描述

💦指针引用的关系

  • 引用对指针进行额简单封装,底层仍然是指针
  • 获取引用地址时,编译器会进行内部转换-获取的是所引用变量的内存地址

使用引用,并没有进行大的变化,而只是对指针进行了简单封装,书写代码时,不必再频繁使用*运算符了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZoomToday

给作者倒一杯卡布奇诺

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值