指针,常量指针,指向常量的指针,指向常量的常量指针

指针的用法有很多,包括间接引用,和数组的结合,和函数的结合等,在此说明下在学习过程中碰到的指针*和常量const的结合。

  1. 指针最基本的用法就是指向一个已知的变量
    指针存放的为数据的地址,*代表解引,是取变量存储的地址指向的值,&为取地址符,是取变量的地址,见下例
//定义一个整型变量与指针并指向他
int num;
int *p = #//*p为一个指针变量,&a为把a的地址取出放进p里
//指针的类型代表了他指向的数据类型
eg:
char a;
char *p;//给p赋初值的另一种方法
p = &a//此时p指向的就是一个char型的数据

2.指向常量的指针
可以将指针定义为指向常量,这意味着不能通过指针修改它所引用的值。
但是我们可以改变指针所存取的地址

//定义格式
const int num = 50int *pi;
pi = #

这样做,更改指针所引用的值是错误的

//更改指针所引用的值
const int num = 50int *pi = #
*pi = 50//这样是错误的
//报错
you cannot assign to a variable that is const

这样是可以的,更改指针指向的地址

//更改指针指向的地址
const int num = 50int data = 2int *pi = #
pi = &data;
//这样是可以的

3.指向非常量的常量指针
我们可以声明一个指向非常量的常量指针,我们不能改变它所指向的地址,但我们可以改变它所指向地址中的值

//定义
int num;
int *const pi = #

这样做是合法的

//改变它所指向地址的数据
int num = 2int *const pi = #
*pi = 5;

这样做是非法的

//改变它所指向的地址
int num = 2;
int data = 5;
int *const pi = #
pi = &data;
//这样做是非法的

4.指向常量的常量指针
顾名思义,是一个指向常量的常量指针,指针指向的地址和指针指向地址里的值都不能改变。很少用。定义如下

//指向常量的常量指针
const int num = 2;
const int *const pi = #//声明指针时必须初始化
//如果这样则会报错
const int num = 2;
const int *const pi;
pi = #
//错误
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值