C语言指针一(地址法理解)

文章地址:https://www.myaijarvis.com/archives/299/
直接按例子来理解

#include <iostream>
using namespace std;

int main() {
    int a=0;
    int *p;
    cout<<"*p:"<<*p<<" &p:"<<&p<<" p:"<<p<<endl;
    p=&a;
    cout<<"*p:"<<*p<<" &p:"<<&p<<" p:"<<p<<endl;
    cout<<"a:"<<a<<" &a:"<<&a<<endl;
    cout<<endl;
    //*p作用就是:取指针p的值,再把这个值作为地址,再取这个地址的值!相当于*(&a)=a
    *p=*p+1;   //相当于a=a+1
    cout<<"*p:"<<*p<<" &p:"<<&p<<" p:"<<p<<endl;
    cout<<"a:"<<a<<" &a:"<<&a<<endl;
    cout<<endl;

    p=p+1;  //相当于在p的值中加了一个int类型的大小存储单元,就是加4:&a+4  
    cout<<"*p:"<<*p<<" &p:"<<&p<<" p:"<<p<<endl;
    cout<<"a:"<<a<<" &a:"<<&a<<endl;
}

结果

*p:1513105 &p:0x61fe10 p:0x1716e0
*p:0 &p:0x61fe10 p:0x61fe1c
a:0 &a:0x61fe1c

*p:1 &p:0x61fe10 p:0x61fe1c
a:1 &a:0x61fe1c

*p:15210176 &p:0x61fe10 p:0x61fe20  //这里十六进制 1c+4=20
a:1 &a:0x61fe1c

解析
Snipaste_2020-03-22_22-31-09.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值