c语言——指针进阶(1)

对于指针,我们在学习c语言初阶的时候就已经讲过:

1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。

2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。

3. 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。

4. 指针的运算

接下来我们来深入学习指针

字符指针

我们知道在指针的类型中有一种指针类型为字符指针 char* 

 大家再看看下面的代码

字符串“abcdef”是怎么存入指针的?

常量字符串a 的地址存放到指针变量 p中。 

数组指针

我们在学习c语言初阶时学过指针数组

 指针数组与数组指针比较类似,我们知道数组指针是一种指针,而整形指针是能够指向整形数据的指针,浮点型指针是能够指向浮点型数据的指针,那数组指针应该是能够指向数组的指针。

p先和*结合,说明p是一个指针变量,然后指针指向的是一个大小为10个整型的数组。所以p是一个 指针,指向一个数组,叫数组指针。

这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。 

数组指针的使用

我们先来看一段代码

 接下来我们用数组指针来改进一下代码

数组名add,表示首元素的地址,但是二维数组的首元素是二维数组的第一行所以这里传递的add,其实相当于第一行的地址,是一维数组的地址可以数组指针来接收 。

学习了指针数组,数组指针我们来一点练习看看大家有没有将二者混淆

 数组参数、指针参数

在写代码的时候难免要把【数组】或者【指针】传给函数,我们来看看应该怎么设计参数

1,一维数组传参

 2,二维数组传参

 3,指针传参

指针传参,用相对应指针接收肯定是可以的

一级指针:存放的是一个地址;

二级指针:存放的是一级指针变量的地址;

我们只要记住一级指针和二级指针的概念在传参时多注意不要违反。

 以上就是全部内容了,如果有错误或者不足的地方欢迎大家给予建议。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值