首页 > 编程语言 > 详细

c语言指针

时间:2021-02-14 09:33:35      阅读:30      评论:0      收藏:0      [点我收藏+]

c语言指针到底是什么????

为了更好的解释指针,在这里我们首先弄清楚一些概念

1.bin(比特位)是什么? bin,byte关系

2.如何产生地址?

3.数据存储的最小存储单位?

 


 

问题一:

  • 大家都知道,我们日常生活中所用的电流分为两种:直流电交流电

而直流电普遍用于电池,我们其他的电器(只要需要插头充电的)几乎都是需要交流电,交流电分为正电负电

我们的电脑亦如此,因此聪明的科学家想到这点,使电脑用二进制编程,0代表负电,1代表正电.不同的正负电组合(不同的二进制排序)可以带来和储存不同信息,即我们经常听到的电信息, 而只用来存储0和1这种信息的一个空间就是一个比特位

 

存储大小的换算:

  • 1 byte = 8 bit

  • 1 KB = 1024 byte

  • 1 MB = 1024 KB

  • 1 GB = 1024 MB

问题二:

我们国家有960万平方公里,而这么大一个地方想要具体到某个地方进行查找,肯定需要给每个地方赋予独一无二的称号(地址),比如四川省达州市XX广场XX公寓XX号, 而我们的电脑存储数据也是这样,给一个大地方划分区域,然后编号.就是地址

 

问题三:

买电脑时候,会看到内存大小,比如4G 8G 16G(相当于中国的国土面积),

这里我们给定一个空间,然后将其划分为最基本的小单元,那么什么是该空间数据的最小存储单元呢?以机器32位为例:

  • bin吗?

如果是bin,那么 2^32 = 4294967296 = 536870912 Byte = 524,288 Kb = 512 MB = 0.5 GB

计算看到,如果以bin为最小存储单元,那么最大占用才0.5GB,即使有4GB 8GB 16GB空间也是浪费.

所以不是.

  • 是byte吗?

如果是Byte的话就是0.5GB * 8 = 4GB,那么就差不多了.

所以就是说数据的最小存储单位是Byte(字节)

图例:

技术分享图片

 

 

那么,指针是什么呢???如图所示,指针就是该编号(也就是内存地址)

而用来存储指针的变量称为指针变量

代码示例:

#include <stdio.h>
int main()
{
   int a = 10;
   int* p = &a;
/*打印a的内容*/
   printf("%d\n", a);
   
   /*打印指针变量p的内容,但是以加前缀16进制显示*/
   printf("%#x\n", p);
   
   /*打印整数a指针的内容*/
   printf("%p\n", &a);
   
   /*修改a的值,打印a的内容*/
   *p = 20;
   printf("%d\n", a );
   return 0;
}
?
?
运行结果:
10
0x61fe14
000000000061FE14
20
?

使用图来解释上述的运行过程:.

技术分享图片

 

 

 

 

c语言指针

原文:https://www.cnblogs.com/lytdw123/p/14401020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!