初识指针

1.什么是指针

2.取地址操作符

在生活中,或者在学校里,想要找到一个人,就需要知道他的家住址,如果有很多房间,你想要找到一个人,但是没有房间编号的话,你找起人来就会很麻烦,一旦有了地址或者房间编号的话,你找起人来就会很容易,在C语言中们知道计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数
据也会放回内存中,那我们买电脑的时候,电脑上内存是8GB/16GB/32GB等,那这些内存空间如何⾼
效的管理呢?
其实也是把内存划分为⼀个个的内存单元,每个内存单元的⼤⼩取1个字节。?
计算机中常⻅的单位(补充):
bit - ⽐特位                                                      1字节=8比特位
byte - 字节                                                        1kb=1024byte
KB                                                                      1MB=1024Kb           
MB                                                                      1GB=1024kb
GB                                                                        1TB=1024GB
TB                                                                          1PB=1024TB
PB

其中,每个内存单元,相当于⼀个学⽣宿舍,⼀
个⼈字节空间⾥⾯能放8个⽐特位,就好⽐同学们
住的⼋⼈间,每个⼈是⼀个⽐特位。
每个内存单元也都有⼀个编号(这个编号就相当
于宿舍房间的⻔牌号),有了这个内存单元的编
号,CPU就可以快速找到⼀个内存

⽣活中我们把⻔牌号也叫地址,在计算机中我们
把内存单元的编号也称为地址。C语⾔中给地址起
了新的名字叫:指针。
所以我们可以理解为:
内存单元的编号==地址==指针

2.取地址操作符&

上面的程序显示创建一个变量,22行的代码 int *pa=&a其中&是把取地址操作符,整个语句的意思就是取出a的地址赋值给指针变量,下面,理解一下int *p的意思

*代表的是P是一个指针变量,int代表的是这个指针变量指向的内存是int的类型

如果是浮点型的话,就要用到下面的语句

double a=1.2;

diuble *pa=&a;

*代表的是pa是一个指针变量,double代表的是指向的是double变量的地址,常见的还有:

char*pa;

unsigned  int*pa;

3.解引用操作符*

相当于通过地址找到里面的内容

指针变量的内存:需要用到sizeof这个操纵符,这个操作符的作用,计算变量所用的内存是字节,下面在编译器下运行看一看

这是在x86条件下运行的,可见所有的指针类型的内存大小都是相同相同·的,下面是在X64条件下运行的结果

大小都一样,那为什么要区分如此多的类型

其实和后面的关于指针的的运算有关系,下面用代码来解释一下

可见,将pa强制类型转换成为字符类的指针变量后,指针变量加一是地址只加了一个字节,原因是char只加了一个字节,这就是不同类型指针变量的意义

好了,今天的介绍到这,难得打字,你们也难得看

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值