C语言指针详解

  1. 指针是什么
  2. 指针和指针的类型

 1.指针是什么?

      在计算机科学中,指针是一种编程语言的一个对象,它存储位于计算机内存中的另一个值的内存地址。指针引用内存中的一个位置,获得存储在该位置的值称为指针解引用。总的来讲就是可以通过它来找到以它为地址的内存单元。

    可能你会很难理解,毕竟这段话太规范了。

来看下图,看下面的一个一个内存格子,我们把他们取了个名字,那这个名字就是它们的地址,就等于我知道你们家的门牌号一样,我能通过你家的门牌号来找到你家一样。指针也是一样的。通过地址来知道内存里面的存放的数据。

如果你没有理解是怎么回事也没关系来看接下来,指针代码的简单应用

 聪明的你已经发现了吧!地址地址指针接受地址,那么指针是不是地址呢?

总结:指针就是变量,用来存放地址的变量。(存放在指针的值都被当成地址来使用)

 2.指针和指针的类型

像变量都有类型,那指针有没有类型呢?

答案是有的,因为前面也讲过了,指针就是变量。

那我们来用一串小代码来认识一个指针的类型吧!

 来看像普通的变量char不是一个字节吗?为什么这里又是四个字节?

是因为指针的大小不是由字符类型来定义的,它的大小是由平台来决定的,32位平台是4个字节,64位是8个字节。

那么平台又是什么呢?

平台代表的是32位和64位

32位的系统是由32根地址线所以它的地址是

00000000000000000000000000000000

这里就有2的32平方的大小

而它32位等于32个比特,8个比特等于一个字节。所以32位的指针才等于4个字节。

64位的也是一样,64位等于8个字节。

那你又会问了,不都是一个样大小么?那类型又有什么用。char和int大小不都是一样么?

如果你这么想就代表,我们对指针的理解还不够透

 看到这幅图,怎么连地址都一摸一样,是不是指针内型真的没用呢?

答案是错的。请你记住一句话,存在必有它的价值。哪怕现在没用,刚出的时候也是有用的,那现在还没被淘汰,那就跟有用了。

我们做个小实验把它们的地址加1,得出了下图。

 这时候我们就发现了同样是加一但地址就不同了。

int类型

因为int类型是加4个字节所以等于c,在16进制里面a代表10,c代表12,8加4等于12,也就等于c。 

 char类型

也是和上面一样,char代表的是一个字节所以等于9。

那么再来一个例题

 看图片的结果,我们每个数组真的被赋值为1了

那么换成char型了?

 可以很明显的看到是不行的,为什么呢?

因为数组是int型他每个字节是按4个字节位单位的

而char型的按1个字节来跳动的。

总结:指针类型区别,在于给上升的字节数不同,所以以后在写代码的时候,记得什么类型数组或者变量,就用什么类型的指针来接收。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值