C语言 指针 基础

C语言 指针 基础

指针提供一种用来使用地址的符号方法。

1.定义
指针的定义:数据类型 *指针变量名
例:int *p;//定义了一个变量名为p的整型指针变量。

指针的数值就是它所指向的对象的地址

2.运算符
运算符*可取出指针指向地址中存储的数值
地址运算符&取出变量所在的地址

3.指针与一维数组

地址地址里面存的数
020
121
222
323
424
525

我们把上面的表格当作一个数组(地址是假设的,与数组标号数值上相同,但代表的概念不同)。 int data[6] = {20,21,22,23,24,25};
(1)数组名是该数组首元素的地址
即 data = &data[0] = 0;//本例地址是0

(2)在C中,对一个指针加1的结果是对该指针增加一个存储单元(根据指针类型的字节决定);
对于数组而言,地址会增加到下一个元素的地址,而不是下一个字节。

(3)对本例来说
data + 2 == &data[2] = 2;//相同的地址

*(data + 2) == data[2] = 22;//相同的值
//*(data + 2):寻址到内存中的data,然后移动两个单位,再取出值。data的第3个元素值。

*data + 2 = 20 + 2 = 22://第1个元素的值和2相加

(4)处理数组的函数实际上是用指针作为参数的。
例:int sum(int *ar) ar是数组名,*ar(此处的*是定义指针变量)是ar数组的首地址。

调用上面的函数 sum(data);//data是数组名

(5)在编写诸如int这样的基本类型的函数时,可以向函数传递int数值,也可以传递指向int的指针。通常我们直接传递数值,只有需要在函数中修改该值时(对该值做加减法之类的运算),我们才传递指针。

对于处理数组的函数,只能传递指针。

(6)一元运算符*和++具有相同的优先级,结合时是从右往左运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值