关于指针部分的学习总结

指针的本质是一个变量,英文point,所以我们常在代码中用p来表示。

首先我们要明确内存被分为一个格一个格,大小呢则为一个字节(一个字节等于八比特bit),

而当我们要在内存上存放数据就要占用这些一个格一个格的内存条,为了方便我们知道存放在了哪一个位置所以我们会有一个编号(也叫做地址)。指针(point)是一个变量(我们之前学过变量的作用是储存数据),那么我们就可以明白了指针就是存放地址的一个变量(我们把存放在指针里的数据称为“地址”)。

int main ()
{
int a=10  ;(a占四个字节)
int *p=&a  ;(一个内存格一个字节,那么a的地址是这四个字节里第一个字节的地址)
return 0;
}
//p即为指针变量    前面的*说明p的类型

对于以前我们学过的输入用法:scanf(" %d ",&x)其中的&是干什么的呢?

&是c语言中的一个运算符号,它的作用是获取变量的地址(内存条的编号),那么我们也就知道了&要与变量在一块才能获得这个变量的地址,而scanf这个函数的原函数意义就是把我们的“输入”输进这个内存格里面,而变量也无非就是具体的某个内存格而已。

这个时候我们把 :   int*p=&x        来解读一下,这段代码就是把&x(即x的地址数据),储存到变量p(指针变量)上,而*号表明p是一个指针,p指向i表明说p的值就是i的变量的地址。

                   如果是int*p,q;        表示p是一个指针而q则是一个整型的一个常量,

               但如果是int*p,*q;        则表示p和q均是一个指针。

对于数组:

a==&a[ ]                        表达的意思是 a 的地址等于a[ ]的地址

例如:我们在前面定义的min,那么我们输入:

int min=10;

int*p=&min;

printf(" *p=%d ",*p);

printf(" p[0]=%d " ,p[0]);                                他们输出的结果是一样的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eilic.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值