第七课 指针

7.1指针的概念
作用:可以直接通过指针间接访问内存

  • 内存编号是从0开始记录的,一般用十六进制数字表示
  • 可以利用指针变量保存地址

7.2指针变量的定义和使用
语法:数据类型 * 变量名;

#include <iostream>
using namespace std;

int main()
{
    // 定义指针
    int * p;
    int a = 10;

    // 让指针记录变量a的地址
    p = &a;

    cout << "a的地址: " << &a << endl;
    cout << "指针p: " << p << endl;

    // 使用指针
    // 通过解引用的方式来找到指针指向的内存
    *p = 1314;
    cout << "a: " << a << endl;
    cout << "*p: " << *p << endl;
  return 0;

}

7.3指针所占的内存空间 32位操作系统下,指针占4个字节空间大小,不管什么类型 64位操作系统下,指针占8个字节空间大小,不管什么类型
7.4空指针和野指针 空指针:指针变量指向内存中编号为0的空间 用途:初始化指针变量 注意:空指针指向的内存不可访问
int main()
{
  // 指针变量p指向内存地址编号为0的空间
  int * p = NULL;
  
  // 访问空指针报错
  // 内存编号0-255为系统占用,不允许用户访问
  cout << *p << endl;
  return 0;
}

野指针:指针变量指向非法的内存空间(尽量避免) int main() { // 指针变量p指向内存地址编号为0x1010的空间 int * p = (int *)0x1010;

// 访问野指针错误
cout << *p << endl;

return 0;
}


7.5const修饰指针
三种情况:

  • const修饰指针 --常量指针 (指针指向的值不可以改,指针的指向可以改) const int * p p内存的是地址
  • const修饰常量 --指针常量 (指针指向的值可以改,指针的指向不可以改) int * const p
  • const即修饰指针,又修饰常量 (指针指向的值不可以改,指针的指向也不可以改) const int * const p

7.6指针和数组
作用:利用指针访问数组内容

#include <iostream>
using namespace std;

int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9};

    int * p = arr; //指向数组的指针  数组名代表数组首地址

    for(int i=1;i<10;i++)
    {
        cout << *p << endl;
        p++;
    }
    

    return 0;
}

7.7指针和函数
作用:利用指针作为函数参数,可以修改实参的值

posted @ 2025-04-02 21:35  起名字太难0123  阅读(8)  评论(0)    收藏  举报