zoukankan      html  css  js  c++  java
  • 指针

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

    写一些结论:

    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
  • 相关阅读:
    一、NHibernate 使用配置与实现简单查询
    NHibernate学习步骤
    sql2008转成2005的解决办法
    二、使用NHibernate对数据库实现增、删、改、查操作
    FusionCharts 点击事件 新页面
    [分享]NHibernate视频教程
    FusionCharts Free使用文档教程第五章FusionCharts Free使用dataXML加载数据
    职业规划
    网页生成pdf文件
    FusionCharts Free使用文档教程第四章FusionCharts Free使用JavaScript加载图形
  • 原文地址:https://www.cnblogs.com/sggggr/p/12856212.html
Copyright © 2011-2022 走看看