指针的定义和解引用

#include <iostream>
using namespace std;

int main() {
    /*
    存储地址的变量叫指针             
    比如这是一个字符变量a          这是一个指针变量pa
    0XE0AFF614  内存地址           0x8324782    内存地址         这地址是十六进制的
       10       变量值             0XE0AFF614   变量值
       a        变量名                pa        变量名
       也就是说指针也有一个地址,但是他的变量值是变量a的地址
    
    */
    int a = 10;
    int b = 20;
    //1.指针变量的定义
    //数据类型 *指针变量名;
    int* pa;//这一步是定义出一个指针变量来跟普通的变量有所不同
    pa = &a;//这一步是把a的地址赋值给指针pa,这一步就是精准定位啊,无论你a的地址怎么变,我pa都能把你找到,如果是普通的变量的话,地址只是变化前的
    //pa = &b;//指针是可以多次赋值的,现在pa变成b的地址了
    printf("%#X %#X\n", &a, pa);

    //2.指针的解引用   拿到a的地址了,接下来该干点啥了,我现在要拿到a的值做一些修改
    //*指针变量名=数值;这么整就可以
    *pa = 7;
    cout << a<< ' ' << (*pa) << endl;

    //*和&的关系
    //*&a =*(&a)=*pa=a  这个意思就是对a取地址再解引用得到的就是a
    //&*pa = &(*pa) = &a = pa  所以说&和*就是一个互逆的关系相当于+和-,先计算右边

    return 0;
}
 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值