第11章 指针

{% markmap %}

第11章 指针

指针变量

  • 指针就是地址,指针变量就是存储地址的变量
    • 新节点
  • 指针变量的声明
    • int *p;
    • int * 的 * 表示这是一个指针变量,int表示指针指向的值是整型

取地址运算符和间接寻址运算符

  • 取地址运算符&
    • 在一个变量前面加上&,就可以取到这个变量的地址
  • 间接寻址运算符*
    • 在指针前面加上*,可以取到这个指针所指向的值

指针赋值

指针的应用

  • 指针作为函数的参数(应用一)
    • 实参传入到函数当中有两种方式,一种是值传递,还有一种就是地址传递,靠指针来实现
    • const修饰传参
      • void f(const int *p);
      • 如果希望传入的指针的值不被修改,可以在前面加上const进行修饰
      • ⭐扩展
        • 1、const int a;int const a;
        • 2、const int * a;int const * a;
        • 3、int * const a
        • 4、const int * const a;int const * const a;
      • ❗形参中 int a[]、int *a、int *const aconst int a[]
        • int a[]等价于 int *const a
        • const in a[] 等价于 const int * const a
        • 对于形参来说,int *aint a[]差别不大,因为a传入进去一般不会修改。
        • 为什么要加个形参中?
          • 因为如果不是形参中const int a[10]const int * const a就会有所区别,int a[10]int *a含义也不一样
          • const int a[10]const会保护数组里每一个元素
          • int a[10]告诉编译器,预留10个内存空间,而int *a则不会,因此不能随意访问后面的空间
  • 指针作为返回值(应用二)
    • ❗千万不要把函数的局部变量的地址给作为返回值,因为函数的局部变量出了函数之后就销毁了,地址就是无效地址。
posted @ 2025-03-28 09:28  StarAire  阅读(7)  评论(0)    收藏  举报