【C语言】初阶指针 快来和我tomato一起来学习吧~~

目录

指针

指针类型

野指针

指针运算

指针加减

指针减指针

指针和数组 

二级指针

 指针数组


指针

指针,指的是指针变量,存放的是地址。

 地址即是访问内存的一个编号,内存的大小为一个字节。

那么指针的大小又是多少呢?都一样吗?

我们可以看到运行结果,不管指针类型是什么,在32位平台下指针变量大小都为4个字节;

而在64位平台下则为8个字节。

那么既然大小和平做平台有关的话,我们为什么要区分指针类型呢?

指针类型

 我们可以看到以上内存中的变化,当变量为int型时,创建啊int*型指针,用指针对其进行更改时可以访问一个int型的空间,可以将变量进行完整的更改;而当我们将指针设定为char*型时,我们只能访问一个char型空间,对其中的内容进行更改。

即 指针类型代表了可操作空间的大小 什么类型的变量就要用对性的指针类型。

野指针

野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针变量在定义时如果未初始化,其值是随机的,指针变量的值是别的变量的地址,意味着指针指向了一个地址是不确定的变量,此时去解引用就是去访问了一个不确定的地址,所以结果是不可知的。

所以我们使用指针时要对其进行初始化。

指针运算

指针加减

pa+i 表示 pa后的第几个元素,再加上 解引用操作符 * 便可对其进行访问。 

上图中因为pa中存放的是数组的首地址,那么*( pa+i )  便和arr[ i ] 操作类似。

减减用法也同样。

但若是 --i 则表示为pa之前的第几个元素

指针减指针

若两个指针指向同一空间:指针减指针的绝对值(也可低地址减高地址),结果为两个指针之间的元素个数。

我们可以看到,第一个元素的地址与第六个元素的地址之间有五个元素。

指针和数组 

 一般情况下数组名为首元素的地址,但与两个例外:

①  sizeof ( 数组名 ) 表示的是整个数组的大小;

②  &数组名 表示的是整个数组的地址

二级指针

我们也可对ppa进行解引用得到变量a的值。 

 指针数组

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值