zoukankan      html  css  js  c++  java
  • C之指针

    什么是指针

    * 指针变量:用来存储某种数据在内存中的地址.
    *
    世面上书籍一般把指针和指针变量的概念混在一起了.
    市面上的书籍说的指针指的就是指针变量

    Ø *号的三种含义
    1. 两个数相乘
    int i =5;
    int j = 5;
    i*j;

    2.
    基本类型* 表示这种类型的指针变量
    - 指向内存中这种类型的变量的地址
    int i= 3
    int* p;可以存放i的地址
    p=&i

    3. 指针变量前加* 表取出这个指针变量里的数据
      int* p;
      *p 把地址里的数据取出来

     指针常见错误
      * 野指针:指针变量没有定义指向的地址,该指针就不能赋值(点我就蓝屏)

      int* p;//声明一个指针变量用来存放一个地址
      //指针变量未经赋值,不可以使用.
      //*p 野指针.
      printf("*p=%d ",*p);

    * 每种数据类型的地址,必须用当前类型的指针变量表示

      double d = 3.14;
      int *p ;//
    指针变量存储int类型数据的地址
      //每种数据类型的地址,必须用当前数据类型的指针变量表示.
      p = &d;
      printf("*p=%lf ",*p);

    Ø 值传递和引用传递
      * 引用传递:如果传递的值是一个内存地址,通过这个地址可以找到地址对应的引用
      * 值传递:传递具体的数值
      * java语言中对象实际上存放在某个内存地址里面,传递对象就相当于传递的是内存地址(引用传递)

    Ø 指针的应用场景
      让函数返回一个以上的值
      直接访问硬件 (opengl 显卡绘图)
      快速传递数据(指针表示地址)
      表示复杂的数据结构(结构体)
      方便处理字符串
      指针有助于理解面向对象


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

      • 地址就是内存单元的编号

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

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

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

     


    #include<stdio.h>
    
    #include<stdlib.h>
    
     
    
    main() {
    
    int i = 5;
    
    //写一个一级指针
    
    int* p = &i;
    
    printf("p = %d 
    ",*p);
    
     
    
    //二级指针
    
    int** pi = &p;
    
    printf("pi =%d 
    ",*(*pi));
    
    printf("pi =%d 
    ",**pi);
    
     
    
    //三级指针
    
    int*** pp = & pi;
    
    printf("pp = %d 
    ",***pp);
    
    }
    

  • 相关阅读:
    dialog draggable
    sql删除重复数据
    winform截取屏幕并发送邮件
    TreeView 一些总结
    省市互连
    查找 ASP.NET 进程的名称
    不错的sql面试题
    在javascript中获取用户控件里的子控件的值;另打开新窗口传值回原窗口
    根据日期显示星期几
    不想让别人使用电脑某个软件的小技巧
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415530.html
Copyright © 2011-2022 走看看