7.指针

7.指针

1.基础

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

方法:通过指针来保存一个地址

指针的大小:对于64位Linux系统来说,指针通常占用8个字节

定义指针:

int a = 10;
int *p = &a;
// 输出是一样的
// 注意,int *p表示指针指向int类型,但是它所占的字节依旧是8个字节数
cout << a << endl;
0x7ffe4190ab2c
cout << p << endl;
0x7ffe4190ab2c
cout << sizeof(p) << endl;
8

使用指针:

// 称作解引用
cout << *p <<endl;

2.空指针

**空指针:**指针变量指向内存编号为0的空间

用途:初始化指针变量。就像是一把刀,不用的时候把它放在刀架上,而不是扔到垃圾桶去。

注意:空指针指向的内存是不可以访问的。内存编号为0~255为系统占用内存。不允许用户访问

int *p = nullptr

3.野指针

野指针:指着变量指向非法的内存空间,是一种常见的错误,要避免!

int *p = (int*)0x10001;
cout << *p << endl;  // 会报错!!!

4. const修饰指针

  1. 常量指针

指针的指向可以修改,但是指针指向的值不可以修改

int a = 10;
const int *p = &a; 

命名的理解方式:常量指针–const ptr,对应const*前面,所以是常量指针。

具体的含义可以这样理解:constint前面,则值是不可以修改的

  1. 指针常量

指针的指向不可以修改,指针指向的值可以修改

int a = 10;
int* const p = &a;

命名的理解方式:指针常量–ptr const,对应*const前面面,所以是指针常量。

具体的含义可以这样理解:constp前面,所以指针是不可以修改的

  1. 修饰常量

指针的指向和指向的值都不可以修改

const int *const p = &a;

5.指针与函数

用于函数参数中,用于地址传递,改变实参:

void swap(int *p1, int *p2){
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int a = 10;
int b = 20;
swap(&a, &b);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值