第十一章 指针

一、指针

变量的指针就是变量的地址。存放变量地址的变量是指针变量,它用来指向另一个变量。

二、定义指针变量

定义指针变量的一般形式为

基类型 *指针变量名;

注意

(1)指针变量前面的“*”表示该变量的类型为指针型变量。指针变量名是 pointer_1、pointer_2,而不是*pointer_1、*pointer_2。这是与定义整型或浮点型变量的形式不同的。
(2)在定义指针变量时必须指定基类型。

理解可以如下

  • 整形是用来装整数的数据类型
  • 指针是用来装地址的数据类型
  • 想要通过指针来访问某个指向的变量
三、直接和间接访问

3.1为什么间接访问

是因为有时间直接访问,访问不到,比如不能在被调函数中不能修改主调函数(值传递)

作用

为了在被调函数里面修改主调函数

注意

  1. 野指针(疯指针)(保存的是随机数)
  2. 这个地方的指向的是一个不确定值,具有随机性,不明确空间,会不安全。
  3. 在使用指针变量之前,要清楚指针变量指向谁。
  4. 类型要匹配。
3.2 指针变量的引用

有两个有关的运算符:
(1)&:取地址运算符。
(2)*:指针运算符(或称“间接访问”运算符),取其指向的内容。例如,&a为变量a的地址,*p为指针变量p所指向的存储单元的内容(即p所指向的变量的值)。 

3.3 编译器对其操作过程
  1. 通过指针变量中的值到内存空间中定位;
  2. 从定位处开始向后偏移sizeof(基类型);
  3. 将偏移好的那部分内存空间当作是一个基类型变量来看
四、应用
1、指针变量作为函数参数

函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中,实现被调函数来修改主调函数。

2、数组

(1)下标法,如a[门形式;
(2)指针法,如*(a+i)或*(p+i)。其中a是数组名,p是指向数组元素的指针变量,其初值 p=a。

注意

对指针进行加1操作,并不是在原有的基础上加1,而是在加的(sizeof(基类型))刚好是第一个地址最后一个字节的下一个。

常见错误

数组的首元素地址,不能加加的原因,是因为是常量,常量不能加加。

3、考题

3.1.1、*&i(相遇之后相互抵消)

3.1.2、测大端小端

3.1.3、强制类型转换

4、空指针

对指针置为空,代表的是指针的一种状态,表示当前状态不可访问。

所以使用的时候进行判断

5、不使用循环实现打印

 

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值