浏览器标题切换
浏览器标题切换end

C++ - 指针

32位操作系统下,不管什么数据类型,指针都是占4个字节的空间大小;

64位操作系统,占8个字节的空间大小。

 

指针

指针的作用:可以通过指针间接访问内存
用指针来保存一个地址
指针就是地址

 

复制代码
#include<iostream>
using namespace std;

int main()
{
    int a=10;
    
//    int *p;// 中间需要空一格
    int * p; //为什么中间空一格才可以出来
    p=&a; //&a:获取a的地址
    //相当于 int * p =&a; 
       
    cout<<&a<<endl; //0x68fed8
    cout<<p<<endl; //0x68fed8
    
    //可以通过解引用的方式来找到指针指向的内存
//    指针前加*代表解引用,代表p指向的内存中的数据
    *p=1000;
    cout<<*p<<endl; //1000
    //通过p可以间接找到a这块内存,通过*p进行修改
    cout<<a<<endl; //1000
    return 0;
}
复制代码

 

空指针

空指针(null point):指针变量指向内存中编号位0的空间。
作用:初始化指针变量。
注意:空指针指向的内存不可以访问。
0-255之间的内存编号是系统占用的,所以不可以访问。

复制代码
#include<iostream>
using namespace std;

int main()
{
    int * p=NULL;
//    *p=1000; //会报错
    return 0;
}
复制代码

 

野指针

野指针:指针变量指向非法的内存空间。

复制代码
#include<iostream>
using namespace std;

int main()
{
    //指针变量p指向了内存地址编号位0x1100的内存空间(非法空间)
    int * p=(int *)0x1100;
    cout<<*p<<endl;//可以编译,但是运行会报错
    return 0;
}
复制代码

 

注意:空指针和野指针都不是我们自己申请的空间,因此不要随意访问。

 

posted @   抓水母的派大星  阅读(166)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示