• 指针


    今早起来脑子不清醒,在一个指针问题上犯了迷糊,影响了我一大早的心情。

    写一些结论:

    1.指针也是变量,特殊之处在于指针变量存放的是地址,这个地址就是别的变量的地址。也就是说指针指向一个变量

    2.指针(1)的指针(2)也是变量,(2)特殊之处在于存放的是指针(1)的地址。这个地址就是指针(1)的地址。也就是说一个指针指向另一个指针。

    3.指针的赋值操作。

    同级别的赋值:

        int aa=1;
        int bb=2;
    
        int *a1=&aa;  //a1存放aa的地址
        int *a2=&bb;  //a2存在bb的地址
        int *a3=a1;   //a1的内容赋值给a3,即a3存放aa的地址
    
        qDebug()<<"a1"<<a1;  //aa的地址
        qDebug()<<"a2"<<a2;  //bb的地址
        qDebug()<<"a3"<<a3;  //aa的地址
    
        qDebug()<<"*a1"<<*a1;  //aa
        qDebug()<<"*a2"<<*a2;  //bb
        qDebug()<<"*a3"<<*a3;  //aa
    
        a1=a2;                  //a1存放a2内的地址
    
        qDebug()<<"a1"<<a1;    //bb的地址
        qDebug()<<"a2"<<a2;    //bb的地址
        qDebug()<<"a3"<<a3;    //aa的地址
    
    
        qDebug()<<"*a1"<<*a1;  //bb
        qDebug()<<"*a2"<<*a2;  //bb
        qDebug()<<"*a3"<<*a3;  //aa

    运行结果:

    a1 0x73fcbc
    a2 0x73fcb8
    a3 0x73fcbc
    *a1 1
    *a2 2
    *a3 1
    a1 0x73fcb8
    a2 0x73fcb8
    a3 0x73fcbc
    *a1 2
    *a2 2
    *a3 1

    不同级别的赋值:

        int aa=1;
        int bb=2;
    
        int *a1=&aa;  //a1存放aa的地址
        int *a2=&bb;  //a2存放bb的地址
        int **a3=&a1; //a3存放a1的地址
    
        qDebug()<<"a1"<<a1;  //输出aa的地址
        qDebug()<<"a2"<<a2;  //输出bb的地址
        qDebug()<<"a3"<<*a3; //输出aa的地址
    
        qDebug()<<"*a1"<<*a1;  //aa
        qDebug()<<"*a2"<<*a2;  //bb
        qDebug()<<"*a3"<<**a3; //aa
    
        a1=a2;                  //a1存放a2内的地址
    
        qDebug()<<"a1"<<a1;     //输出bb的地址
        qDebug()<<"a2"<<a2;     //输出bb的地址
        qDebug()<<"a3"<<*a3;    //由于a3存放的是a1的地址,a1内又变为bb的地址,所以输出bb的地址
    
        qDebug()<<"*a1"<<*a1;  //输出bb
        qDebug()<<"*a2"<<*a2;  //输出bb
        qDebug()<<"*a3"<<**a3;  //输出bb

    输出结果:

    a1 0x73fcc0
    a2 0x73fcbc
    a3 0x73fcc0
    *a1 1
    *a2 2
    *a3 1
    a1 0x73fcbc
    a2 0x73fcbc
    a3 0x73fcbc
    *a1 2
    *a2 2
    *a3 2
  • 相关阅读:
    519,伪类和伪元素的区别
    518,自定义字体的使用场景
    517,sytlus/sass/less的区别
    516,base64的原理及优缺点
    515,前端性能优化--减少http请求(待补充)
    514 ,css不同选择器的权重(css层叠的规则)
    513,如果需要手写动画,你认为最小时间间隔是多久,为什么?
    512,a标签的target属性
    511,display:inline-block什么时候不会显示间隙?
    510,position的值,relative和absolute定位原点是
  • 原文地址:https://www.cnblogs.com/sggggr/p/12856212.html
Copyright © 2020-2023  润新知