指针

作者: Vergil_wj | 来源:发表于2021-07-28 08:30 被阅读0次

    1、指针的重要性

    C 语言的灵魂。

    2、定义:

    地址:
    • 地址就是内存单元的编号;
    • 从 0 开始的非负整数;
    • 范围:0~FFFFFFFF(0~4G-1)。
    指针:
    • 指针就是地址,地址就是指针。
    • 指针变量是存放内存单元地址的变量。
    • 指针的本质是一个操作受限的非负整数。

    分类

    1、基本类型指针

     int * p; 
    
    • p 是个变量名字,int * 表示该 p 变量只能存储 int 类型变量的地址。
    int * p; 
    int j = *p;  //error
    
    • 此时,p 并没有保存有效的变量地址,p 中就是一个垃圾数字。
    • 不能将一个不确定单元的值赋给另一个变量。
    int * p;
    int i = 10;
    int j;
    
    p = &i;  //把 i 的地址发送给 p,即 p 指向 i;这部也可直接写成 int *p = &i。
    j = *p;
    printf("i = %d,j = %d,*p = %d",i,j,*p)  //i = 10,j = 10,*p = 10
    

    p=&i
    p 保存了 i 的地址,所以 p 指向 i。
    修改 p 的值不影响 i 的值,修改 i 的值不影响 p 的值。
    *p 等价于 i,*p 和 i 在任何地方可以互换。

    int i = 10;
    int *p = &i;
    
    //等价于
    int i = 10;
    int *p;
    p = &i;
    
    • 指针变量也是变量,只不过它存放的不能使内存单元的内容,只能存放内存单元地址。
    • 普通变量前不能加 *
    • 常量和表达式前不能加 &。

    相关文章

      网友评论

          本文标题:指针

          本文链接:https://www.haomeiwen.com/subject/ogwlultx.html