C++/C中一级指针和二级指针的定义和使用

一级指针:

  • 定义                                                                   int *p;       // 定义一个int型的指针变量('*'的此时不是解引用运算符的作用,而是表示声明一个指针变量)
  • *取址运算符'&'                       &p;     //访问指针变量p在内存中的地址
  • *解引用运算符'*':                                              *p;      //访问指针变量p所指向地址的内存的数据
  • *直接使用                                       p ;    //访问指针变量p所指向的地址
  • 赋值:                            int n=1;p=&n;    //将int型在内存中的地址赋给指针变量p
  • 输出:                    cout<<*p<<&p<<p;   //输出指针变量p所指向对应地址内存的数据,p在内存的地址,p指向的地址

二级指针:

  • 定义:                                             int **p2;        //定义一个int*型二级指针变量  *注意:二级指针只能指向一级指针的地址
  • 赋值:                             int *p,n=1;p2=&p;         //确定二级指针p2指向哪个一级指针
  • 输出:        cout<<**p2<<*p2<<&p2<<p2;       //分别输出p2跳越2次地址后最终的数据,p所指向的地址,p2在内存的地址以及p在内存的地址

代码实例:

#include<iostream>
using namespace std;
int main()
{
        //利用一级指针输出int型的数据和地址:
        int n1 = 1, * p;
        p = &n1;
        cout << p << " " << *p << " " << &p << endl;
        //利用二级指针输出int型的数据和地址:
        int** p2;
        p2 = &p;
        cout << p2 << " " << *p2 << " " << **p2 << endl;
        return 0;
}

注意attention:

  • 二级指针只能被一级指针变量赋值,当被其他类型赋值时会出现报错

 

 

        • 图示:

 

 

 

posted on 2021-12-17 23:48  神雨临  阅读(648)  评论(0编辑  收藏  举报