C/C++ 指针的概念及简单应用

定义指针的一般形式

类似定义变量的形式,数据类型包含 int、char、float等:

    类型名  *指针变量名;

指针有什么用?

  定义一个变量value:

int value = 150;

  定义一个指针pv:

int *pv = &value;

*注:定义指针时应对指针进行初始化,原则上不允许int *pv;这样的指针出现。如果没有想好,可以将指针定义为空指针char *p = NULL;
  于是我们就定义了一个指向value的指针pv
在这里插入图片描述
  int value是定义了一个名为value的整型变量,它的值为150,存储这个数据的内存为0001H,为了访问这块内存空间,我们定义了一个指针pv,其中存储的信息为访问value中数据的内存序列。


作用分析

  那么运行结果

pv = 0x6dfd74
&value = 0x6dfd74
value = 150
*pv = 150

  从以上代码可以看出,pv与&value的作用相同,都是取地址;*pv与value的作用相同,都是取变量的值。因此可得如下关系表:

代码作用
pv/&value取变量地址
*pv/value取变量的值

如果输入*pv = 300;那么将会把value的值置为300。


指针与数组

  指针与数组可以进行联用,如已知一个数组a[i]

在初始定义指针时,int *pa = &a[0];int *pa = a;等价;在后续调用时,pa = &a[0];pa = a;等价。
  指针取数组第一个元素的首地址。


通过指针引用数组

  取数组中元素的值有如下几种等价表示方法:a[i]pa[i]*(a+i)*(pa+i)
  取数组中地址有如下几种等价表示方法:&a[i]&pa[i](a+i)(pa+i)

  pa对准了数组的地址。但pa++;并不是指针变量pa的值简单加1,而是加上了一个基类型的字节数,如定义的是int型,则是移动了sizeof(int) = 4个字节数,不同数据类型所占字节的大小不同,依据编译器的位数而定,可参见https://blog.csdn.net/iXiaochu/article/details/100535333。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值