zoukankan      html  css  js  c++  java
  • 指针

    指针

    指针就是地址,地址就是指针

    地址就是内存单元的编号

    指针变量是存放地址的变量

    指针和指针变量是两个不同的概念‘

    但是要注意:通常我们在叙述时,会把指针变量简称为指针,实际含义并不一样

    # include <stdio.h>

    int main(void)
    {
    int * p;
    // p是变量的名字,int * 表示p变量存放的是int类型变量的地址
    // int * p;不表示定义了一个名字叫做* p的变量
    // int * p;应该这样理解:p是变量名,p变量的数据类型是int *类型。所谓int *类型就是存放int变量地址的类型
    int i = 3;

    //p = &i; //ok
    //p = i; //error,因为类型不一致,p只能存放int类型变量的地址,不能存放int类型的值
       p = &i;/*
                  p保存了i的地址,因此p指向i
              p不是i,i也不是p,更准确的说:修改p的值不影响i的值,修改i的值不影响p的值
              如果一个指针变量指向某个普通变量,则*指针变量 就完全等同于 普通变量
              例子:
            如果p是一个指针变量,并且p存放了普通变量i的地址,则p指向普通变量i
    *p 就完全等同于 i
    或者说 :在所有出现*p的地方都可以替换成i
             在所有出行i的地方都可以替换成*p
      *p 就是以p的内容为地址的变量
    */



    return 0;
    }
    1. 指针的重要性:表示一些复杂的数据结构 快速的传递数据 减少内存的耗用【重点】 使函数返回一个以上的值【重点】 能直接访问硬件 能够方便的处理字符串

      是理解面向对象语言引用的基础

      总结:指针是C语言的灵魂

    2. 指针的定义

      1. 地址:内存单元的编号,从0开始非负整数

        地址的范围:4G[0----4G-1]

      2. 指针:指针就是地址,地址就是指针

        指针变量就是存放内存单元编号的变量,或者说指针变量就是存放地址的变量

        指针的本质就是一个操作受限的非负整数

    3. *的含义

      1. 乘法

      2. 定义指针变量

        int * p;// 定义了一个名字叫p的变量,int *表示p只能存放int变量的地址

      3. 指针运算符

        该运算符放在已经定义好的指针变量的前面

        如果p是一个已经定义好的指针变量

        则 *p 表示 以p内容为地址的变量

      4. 如何通过被调函数修改主调函数普通变量的值

        4.1>实参必须为普通变量的地址

        4.2>形参必须为指针变量

        4.3>被调函数中通过 *形参名 = ... 的方式就可以修改主调函数相关变量的值

  • 相关阅读:
    几个论坛上看到的2015小米笔试题
    Line(扩展欧几里得)
    MapReduce编程之倒排索引
    annotation(@Retention@Target)详解
    【JEECG技术文档】JEECG平台对外接口JWT应用文档V3.7.2
    jeecg 模糊查询
    jeecg下实现自动默认模糊查询
    The packaging for this project did not assign a file to the build artifact
    Maven添加本地Jar包
    maven 如何引入本地jar包
  • 原文地址:https://www.cnblogs.com/icoding233/p/13174096.html
Copyright © 2011-2022 走看看