• C++ 【2】


    1.指针基础
    字符:'C' 一个字符占一个字节
    在C++中  <<  这个为插入运算符       >>  这个为提取运算符

    一个变量的地址称为该变量的指针;如果在程序中定义了一个变量或者数组,
    那么,这个变量或数组的地址(指针);也就确定为一个常量。
    (1)直接访问:按变量地址存取变量。

      cin>>i; //shiji上放到定义i单元的地址中

    例如:

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5.     int  x  = 6;
    6.     cout<<"\n x在内存单元的地址为:"<< &x <//直接访问
    7.     
    8.     cout<<"\n请输入 x 的值:"<< x <
    9.     cin>>x;
    10.     cout<<"x的值为:"<< x <
    11.     
    12.     return 0;
    13. }

    (2)间接访问:将变量的地址存放到另一个单元p中,
    通过p取出变量的地址,再对变量操作。

    例如:

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5.     int* p = null;    //一级指针
    6.     int x = 666;
    7.     
    8.     cout<<"\n x在内存单元的地址编号为:"<< &x <
    9.     
    10.     p = &x;
    11.     cout<<"p的值为(x的内存单元地址编号): "<< p <
    12.     cout<<"输出指针变量 p 指向地址编号的值:"<< *p <//间接访问
    13.      
    14.     return 0;
    15. }

    变量的  指针  和  指向变量的 指针变量

    变量的  指针 就是 变量的地址,当变量定义后,其指针(地址)是一 常量

    如:可以定义一个变量 专门用来存放  另一变量的地址,这种变量我们称为“指针变量”
    在编译时同样分配一定的存储单元,为赋初值时,该存储单元的值是随机的

    指针变量定义的一般形式为:
    类型标识符  *变量名

    int *i_point;
    

    指针变量赋初值的两种写法:

    1. (1) int  i , *i_piont;
    2.       i_point = &i;
    3.  
    4.  (2)  int i;
    5.       int *i_point = &i;

    注意:一个指针变量只能指向同一类型的变量;即:整型变量只能指向存放整型变量数据的地址,
    而不能存放其它类型数据的地址。

    * 的含义:
    1.    在定义语句中只表示变量的类型是指针,没有任何计算意义
    2.  * 在语句中表示"指向"。 &表示"取地址"


    2.指针变量的引用:
        指针变量只能存放地址,不要将非地址数据赋值给指针变量。  

    1. #include
    2. using namespace std;
    3. int main(int argc ,char *argv[])
    4. {
    5.     int x,y;                  //定义两个整型变量
    6.     int*p1,*p2;                //定义两个整型指针
    7.     p1 = &x ,p2 = &y;        //给指针变量 p1,p2 赋值
    8.     *p1 = 10,*p2 = 20;        //给两个指针赋值
    9.     
    10.     cout<'\t'<//直接访问并输出          
    11. // '\t'  的意思是:它是一个转义字符,相当于Tab键,可以使两个输出的数,保持一定的间距,便于阅读。
    12.     cout<<*p1<<'\t'<<*p2<//指针变量引用
    13.     
    14.     return 0;
    15. }    


    注意:绝不能对未赋值的 指针变量 作 “指向” 运算    

  • 相关阅读:
    依托数据、平台、知识增强等优势 夸克大模型大幅降低问答幻觉率
    简单Win10版Docker+Python封装
    面试算法 二叉树的遍历,方法 :线索二叉树 ( morris ) ,前序遍历: 中序遍历: 后序遍历
    maya 设置半径 获取时长,设置时长
    【从零开始学习 SystemVerilog】8.13、SystemVerilog 约束—— pre_randomize & post_randomize
    Flink系列之Flink 流式编程模式总结
    MySQL列大小写敏感
    stm32f103步进电机S曲线加减速计算
    Java 类加载的过程
    2024年04月IDE流行度最新排名
  • 原文地址:https://blog.csdn.net/m0_59174039/article/details/133104917