• c++指针 安静点


     1 指针的基本概念

    指针的作用: 可以通过指针间接访问内存

    • 内存编号是从0开始记录的,一般用十六进制数字表示

    • 可以利用指针变量保存地址

     2 指针变量的定义和使用

    指针变量定义语法: 数据类型 * 变量名;

    int main() {
    
        //1、指针的定义
        int a = 10; //定义整型变量a
        
        //指针定义语法: 数据类型 * 变量名 ;
        int * p;
    
        //指针变量赋值
        p = &a; //指针指向变量a的地址
        cout << &a << endl; //打印数据a的地址
        cout << p << endl;  //打印指针变量p
    
        //2、指针的使用
        //通过*操作指针变量指向的内存;*号是是用来解引用的
        cout << "*p = " << *p << endl;
    
        system("pause");
    
        return 0;
    }

     

     3 指针所占内存空间

    提问:指针也是种数据类型,那么这种数据类型占用多少内存空间?

    示例:

    int main() {
    
        int a = 10;
    
        int * p;
        p = &a; //指针指向数据a的地址
    
        cout << *p << endl; //* 解引用
        cout << sizeof(p) << endl;
        cout << sizeof(char *) << endl;
        cout << sizeof(float *) << endl;
        cout << sizeof(double *) << endl;
    
        system("pause");
    
        return 0;
    }

    总结:所有指针类型在32位操作系统下是4个字节,64位操作系统下是8个字节。

     

     4 空指针和野指针

    空指针:指针变量指向内存中编号为0的空间

    **用途:**初始化指针变量

    **注意:**空指针指向的内存是不可以访问的

    示例1:空指针

    int main() {
    
        //指针变量p指向内存地址编号为0的空间
        int * p = NULL;
    
        //访问空指针报错 
        //内存编号0 ~255为系统占用内存,不允许用户访问
        cout << *p << endl;
    
        system("pause");
    
        return 0;
    }

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

    示例2:野指针

    int main() {
    
        //指针变量p指向内存地址编号为0x1100的空间,我们没有申请这个这个内存地址
        int * p = (int *)0x1100;
    
        //访问野指针报错 
        cout << *p << endl;
    
        system("pause");
    
        return 0;
    }

    总结:空指针和野指针都不是我们申请的空间,因此不要访问。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

      

  • 相关阅读:
    实时监听输入框值变化的完美方案:oninput & onpropertychange
    展示两行,超出用。。。表示
    修改下拉框滚动条样式
    js单线程工作
    锚点
    火狐图片乱码
    解决重复提交的几种方法
    forward和redirect的区别
    form表单刷新自动提交
    addEventListener和attachEvent的区别
  • 原文地址:https://www.cnblogs.com/anjingdian/p/15836953.html
Copyright © 2020-2023  润新知