zoukankan      html  css  js  c++  java
  • 指针知识(一):指针声明

    由于指针可以直接引用它所指向的数值,数值是有类型的,因此在声明指针的时候要指明它所指向的数据类型

    指向一个整型(int)或浮点型(float)数据的指针与指向一个字符型(char)数据的指针并不相同。

    因此,声明指针的格式如下:

    type * pointer_name;

    这里,type 是指针所指向的数据的类型,而不是指针自己的类型。例如:

    int * number;
    char * character;
    double * decimals;

    它们是3个指针的声明,每一个指针指向一种不同数据类型。这三个指针本身其实在内存中占用同样大小的内存空间(指针的大小取决于不同的操作系统),但它们所指向的数据是不同的类型,并占用不同大小的内存空间,一个是整型int,一个是字符型char ,还有一个是浮点型float。

    需要强调的一点是,在指针声明时的星号asterisk (*) 仅表示这里声明的是一个指针,不要把它和前面我们用过的引用操作符混淆,虽然那也是写成一个星号 (*)。它们只是用同一符号表示的两个不同任务。

    一个简单的例子:例1

    //my first pointer
    #include <iostream>
    using namespace std;
    
    int main ()
    {
      int firstvalue, secondvalue;
      int * mypointer;
    
      mypointer = &firstvalue;
      *mypointer = 10;
      mypointer = &secondvalue;
      *mypointer = 20;
      cout << "firstvalue is " << firstvalue << '
    ';
      cout << "secondvalue is " << secondvalue << '
    ';
      return 0;
    }
    输出:firstvalue is 10
    secondvalue is 20

    注意变量firstvalue 和 secondvalue 是怎样间接被赋予数值的。首先我们使用 ampersand sign (&) 将firstvalue的地址赋给mypointer 。然后我们将10 赋给 mypointer所指向的数值,它其实指向firstvalue的地址,因此,我们间接赋予了firstvalue的数值。

    为了让你了解在同一个程序中一个指针可以被用作不同的数值,我们在这个程序中用value2 和同一个指针重复了上面的过程。

    一个稍复杂的例子,让你更深理解指针:例2

    //second example
    #include <iostream>
    using namespace std;
    
    int main ()
    {
      int firstvalue = 5, secondvalue = 15;
      int * p1, * p2;
    
      p1 = &firstvalue;  //p1存储的是firstvalue地址
      p2 = &secondvalue; //p2存储的是secondvalue地址
      *p1 = 10;          //指针p1指向的值为10,
               //地址是firstvalue的地址,即firstvalue=10 *p2 = *p1; //secondvalue=10 p1 = p2; //p2存储的地址给p1,p1指向secondvalue *p1 = 20; //secondvalue= 20; cout << "firstvalue is " << firstvalue << ' '; cout << "secondvalue is " << secondvalue << ' '; return 0; }
    输出:firstvalue is 10
    secondvalue is 20

    注释写的很清楚了,自己要多练去理解。

  • 相关阅读:
    JWT安装配置
    封装axios请求&添加拦截器
    RESTful风格
    APIView使用增删改查user
    虚拟环境
    VUE异步检查用户名和手机号(6)
    Django-celery验证用户名和手机号(5)
    vue异步发送短息短信(4)
    Django-celery异步发送信息(3)
    Django-celery异步基本配置与使用(2)
  • 原文地址:https://www.cnblogs.com/guozqzzu/p/3592329.html
Copyright © 2011-2022 走看看