指针

定义指针

定义示例:
int a = 10;
int *p;
p = &a; ##指针只记录变量的内存地址

使用指针

解引用:* p; ##通过解引用*p指向a的地址,取出数据

空指针和野指针

空指针:主要用于初始化变量。int *p = nullptr;
 空指针p会指向地址为0的内存。0-255内存编号系统占用,无法操作,因此指向无效对象。

野指针:指向一个系统内部未定义完全未知的空间。

对无效内存地址的访问可能触发段错误(Segmentation Fault),也可能被允许但导致未定义行为(UB);

const修饰指针

const把指针定义为常量指针;
常量指针:可以修改指向,但不能修改指向地址的值(不能通过指针修改其指向的值)
示例:

const int* p = &a;
p = &c; // ✅
*p = 50; // ❌️

示例:

const int* const p = &a;
p = &c; // ❌️
*p = 50; // ❌️

指针遍历数组

int arr[5] = {1,2,3,4,5};
int* p = arr;
cout << *p << endl; //此时指向arr[0],输出1
p++; //访问下一个
cout << *p << endl; //此时指向arr[1],输出2

指针与函数

指针可以在函数中传递地址,即时生效修改

void swap(int* p,int* q){}; //实现值交换
int a = 10;
int b = 20;
swap(&a,&b); //此时a和b的值会真实发生交换;不使用指针只会在内部交换,只能用返回值送出

posted @ 2026-05-11 22:11  www6526  阅读(6)  评论(0)    收藏  举报