从初步到深入了解 指针

目录

1.什么是指针?

2.指针变量的定义

3.指针运算

4.特殊的数据如何存放在指针里

5.指针进阶 

1.数组指针

 2.函数指针


1.什么是指针?

指针在C语言中用来存放其他数据所占空间首地址的变量,而地址则相当于每个空间的的房间号,我们可以通过*解引用符号来操作指针从而达到实现改变该房间里的东西,实现对各种复杂数据的访问

2.指针变量的定义

由于不同类型的数据所占空间不一样,所以在定义指针变量时要指明该指针变量所指向的数据类型

例如:我们要存放一个int类型数据的地址

           int *p=(&数据)

这里的*表示p是一个指针变量,int则表示该指针变量所指向的数据类型,而指针变量是用来存放地址的,所以我们需要用&取地址符号来得到该数据的地址 

3.指针运算

指针之间也可以比较大小,进行相减,但仅限于同种类型的比较

指针之间比大小:如果相等,则说明两指针变量存放的地址相同

                             如果a>b,则说明b存放的地址在a的前面,反之则在a的后面

指针进行相减:用来计算两指针存放的地址相距的距离

同时,给指针加一或减一,则指针存放的地址会增加一个其所指数据的类型的空间大小,例如int类型的空间大小是4个字节,则int类型的指针变量加一则会在地址上增加4个字节

4.特殊的数据如何存放在指针里

数组的地址:一维数组会将首元素的地址存放在指针里

                      二维数组则会将第一行的地址存放在指针里

常量字符串:例"abcdefg"则会将a的地址存放进去,也就是首位数字

5.指针进阶 

1.数组指针

居然指针是用来存放地址的,那么数组的地址也可以被存放吗?答案是可以的

 

首先,int是用来代表存放的数据类型,上面图例中,存放的是int类型的数组,则用int

其次,(*p)括号用来让*号与p结合,意指p是指针变量

最后,[10] 则是代表该数组有是个元素

以此类推

 2.函数指针

看到这里可能有人懵了,函数指针?函数也有地址的吗?答案是有的,并且和数组一样,他的名字就是存放地址的地方

那么,函数指针怎么定义呢? 

依旧是max函数,int 是指该函数的返回值

                            (*p)是用处与上述同意,括号让*号与p相结合,代表p是指针变量

                            (int,int)是值该函数的形参,形参名可以省略,但是形参类型不可以

                                

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值