学习嵌入式第十三天

指针

指针是c语言中的一个重要概念,也是c语言的一个重要特色。

地址和指针的概念

地址:在计算机中,内存被划分为许多小的存储单元,每个存储单元都有一个唯一的编号,这个编号就是地址。内存地址通常以十六进制形式表示。

指针:

指针变量:指针是一种特殊变量,它存储的是另一个变量的内存地址。指针变量的声明需要在其类型前加上星号,表示它是一个指针。

指针的值:指针变量的值是它所指向的变量的内存地址,通过指针变量,可以直接访问和操作它所指向的变量的值。

定义指针的一般形式为

int *p;

这里p是一个指针变量,可以存储整型变量的地址。 * 是类型说明符,int是基类型。

指针变量的命名规则于标识符相同。

指针初始化:

int i = 10;

int *p = &i;

这里&是取地址运算符,它返回i的地址,并赋值给p。

通过指针访问变量:

int i = 10;

p = &i;

*p = 100;

这里*是指针运算符,这段代码的运行结果是i的值变成了100。

指针常用作主调被调函数之间的参数传递,通过指针传参可以在被调函数中修改主调函数中的数据。

指针的工作过程可以分为三部:

1、通过指针变量中的值到内存空间中定位;

2、从定位处开始向后偏移sizeof(基类型);

3、将偏移好的那部分内存空间当作是一个基本型。

变量的指针和指向变量的指针变量

指针变量作为函数参数:函数的参数也可以是指针,它的作用是将一个变量的地址传送到另一个函数中。

程序举例:

 

以上是二分查找的代码,这个函数的返回值是一个指针,参数也是指针。

 

以上是选择排序的代码,可以看到a数组的第  i 项被表示为了*(a + i),这是因为*a表示数组的第0项,而且指针变量加1,表示地址向后偏移sizeof(基类型),这里基类型是int,地址偏移了4位,而int型数组的每一项在内存中也是占4个字节,所以a[i]也可以表示成*(a + i)。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值