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

江一帆 2020-03-22 PM 4204℃ 0条 955字 Site load time is:149 ms 百度:已收录

直接按例子来理解

#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

标签: none

本文最后更新于:2020-03-23 15:40,可能因经年累月而与现状有所差异。

非特殊说明,本博所有文章均为博主原创。

评论啦~


召唤看板娘