zoukankan      html  css  js  c++  java
  • C++中指针和指针变量

    指针和指针变量的理解:

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        int * m;
        m = &n;
        n = 10;
        cout << "n=:" << n << endl;
        *(int*)m = 110;
        cout << "*m:" << *m << endl;
        cout << "n:" << n << endl;
        cout << "&n:    " << &n << endl;
        cout << "m:    " << m << endl;
        system("pause");
        return 0;
    }

    指针:放的是其他普通变量在内存中的首地址。比如上面的代码,&n代表n的首地址,是个指针。&n还有个名字,叫做引用,n是个整型变量,整型变量这四个字只是个名词,它指代的是内存中一块连续地址,此例是4个字节的连续内存地址。地址是用整数表示的。

    指针变量:存放其他变量地址的那个变量。比如上面代码中的m就是一个指针变量。

    所以,指针是个首地址,是个整数,是个常量;指针变量是个变量。指针变量前面加个*号,意思是解引用,代表m所指向的那个普通变量的整型值。

    int * m; //这句话中int *代表指向整型的指针,这样写是准备定义一个指针变量,m就是定义的指针变量,它用来存放其他普通变量的首地址。也可以这样理解:m是个指针变量,它的类型是整型指针类型。


     再来一例:

    #include<iostream>
    using namespace std;
    int main()
    {
        int a = 10;
        int b = 22;
        int *p1;
        int* p2;
        p1 = &a;
        p2 = &b;
        cout << "a的地址是:"<<&a<< endl;
        cout << "b的地址是:" << &b << endl;
        cout << "指针变量p1所指向的地址是:"<<p1 << endl;
        cout << "指针变量p2所指向的地址是:" << p2 << endl;
        system("pause");
        return 0;
    
    }
    View Code

    运行结果:

    #include<iostream>
    using namespace std;
    int main()
    {
        int a = 10;
        int b = 22;
        int *p1;
        int* p2;
        p1 = &a;
        p2 = &b;
        cout << "a的地址是:"<<&a<< endl;
        cout << "b的地址是:" << &b << endl;
        cout << "指针变量p1所指向的地址是:"<<p1 << endl;
        cout << "指针变量p2所指向的地址是:" << p2 << endl;
        cout << "指针变量p1本身的地址是:" << &p1 << endl;
        cout << "指针变量p2本身的地址是:" << &p2 << endl;
        system("pause");
        return 0;
    
    }
    View Code

    运行结果:

    可见,指针本身在内存中也有自己的地址。


  • 相关阅读:
    DateTime与DateTime?赋值问题以及null类型的如何赋值问题
    ajax请求aspx.cs后台方法
    Windows 下安装 Memcached
    windows下mysql表名区分大小写
    csredis
    路由名称
    发布后的项目打开swagger
    IActionResult的返回类型
    ASP.NET Core开发之HttpContext
    Web SQL数据库
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/9992505.html
Copyright © 2011-2022 走看看