C语言“巨简单”——指针

我们在学习C语言的时候,是不是觉得指针这章节“巨简单”,一听就会,一写就废。如果你们也有这样的烦恼,那我觉得这件事太酷啦。

不管我们要学习什么,都要先去了解它的概念,所以第一步

哈哈,不过话又说回来了,

1.概念

>1 声明指针:可以通过在变量名前添加 * 符号来声明一个指针变量。例如,int *ptr; 声明了一个指向整数类型的指针变量 ptr

>2 取址操作符 &:使用 & 符号,可以获取变量的地址。例如,int num = 10;,那么 &num 表示变量 num 的地址。

>3 解引用操作符 *:使用 * 符号,可以访问指针所指向的内存位置的值。例如,int *ptr = #,那么 *ptr 表示指针 ptr 所指向的内存位置存储的值。

>4 空指针:空指针是一个特殊的指针值,表示指针不指向任何有效的内存位置。在C语言中,可以使用 NULL 宏来表示空指针。

>5 指针算术:指针可以进行算术运算,如指针加法、减法。这样可以在内存中移动指针的位置。

没想到吧,指针也是可以进行算术运算的,不过最好是指向同一块空间的指针,不然它们的加减没有意义。

>6 动态内存分配:使用 malloc() 函数可以在运行时动态地分配内存空间。通过分配内存,可以创建具有可变大小的数组和数据结构。使用完后,应该用 free() 函数释放已分配的内存。

是不是看着依旧很迷惑呢,那我们不妨举一个生活中的例子,

想象一个楼房,知道你想不到,那么再想一下,你的好朋友住在这栋楼里面,你要去找他玩,你能通过什么去确认他的房间,然后找到他呢,没错,就是房间号。那么指针也是一样的道理,不过指针指向的是内存空间中的地址是不是看起来很简单呢。那我们既然认识了指针,那肯定有很过同学就好奇了,指针有什么用呢

这么说吧,数组能做的事情,我指针基本都能做,数组不能做的事情,我指针依旧可以做,这就是我。废话也说这么多了,没人说我水文字了吧,那我们直接上代码吧。

我想这时候有人就会有疑惑了,为什么都是*号,可表示的内容确实不同呢。其实也是很容易理解的,可以分为三种情况。

1.声明指针变量: 在声明变量时,星号用来表示该变量是一个指针。

》也就是我们的int *pointer = &number;这颗*号的含义

2.解引用操作符: 在使用指针时,星号用作解引用操作符,用来访问指针所指向的内存地址处的值。

》与之对应的    printf("%d\n", *pointer);也就是这颗*号

3.指针运算乘法: 在一些情况下,星号也可以表示指针运算中的乘法操作。例如,如果你有一个指向数组开头的指针,你可以使用指针加上一个偏移量来访问数组中的元素,这个偏移量将会与指针的大小相乘。

》这种情况下的指针是我们最难理解的,但也是应用最为广泛的。多的不唠,我们直接看代码。

这只是一个简单的对指针的运算,看懂了吧,那我就相信你们懂了哦!

既然会了,那我们不妨秒几道题,练练手呢。我先给大家打个样,

是不是看的,多做几道就能看懂啦,

相信聪明如你,拿下这些题目必然不在话下,那不妨试试这几道。

这期我们就到这里,希望这篇文章对你有所帮助,我们下期再见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值