C语言指针的初步认识--学习笔记(1)

本文深入浅出地介绍了C语言中指针的重要性,包括其提高内存访问效率、数据结构实现和函数参数传递的作用。讲解了指针的基本概念,如指针变量、解引用操作符,并展示了指针的三种基本运算。
摘要由CSDN通过智能技术生成

前言

C语言哪个部分最难?大部分人的答案便是指针。C语言作为一门经典的编程语言,它的设计哲学是简单、高效、灵活。在C语言中,指针是一个非常重要和强大的功能。拥有强大功能的同时,对我们要理解它所花费的时间也就越多。最近小编也是在进阶C语言高手路途中碰上了指针这个大难题。以下我的学习笔记将记录我的学习进度以及内容,在此分享给大家,来帮助大家理解指针。

为什么需要指针?

  • 高效的内存访问:直接通过内存地址访问变量比通过变量名访问要快得多。指针可以让我们直接访问和操作内存,提高了程序的运行效率。
  • 数据结构的实现:许多数据结构(如链表、树、图等)依赖于指针来实现。指针使得我们能够有效地链接不同的元素,从而实现复杂的数据结构。
  • 函数参数传递:通过指针,我们可以在函数调用时传递变量的地址,这样函数就能直接修改变量的值,而不是创建一个局部副本。这在处理大数据结构时特别有用。

1.指针的基本概念

1.1什么是指针

在编程中,创建变量其实就是向内存申请空间,比如:

上述的代码就是创建了整型变量a,内存中申请4个字节,⽤于存放整数10,其中每个字节都
有地址,上图中4个字节的地址分别是:

1.0x000000670711F5D4

2.0x000000670711F5D5

3.0x000000670711F5D6

4.0x000000670711F5D7

这些地址就是变量a在内存中随机申请的,任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。

1.2指针变量和解引用操作符(*)

1.2.1指针变量

那我们通过取地址操作符(&)拿到的地址是⼀个数值,⽐如:0x006FFD40,这个数值有时候也是需要存储起来,⽅便后期再使⽤的,那我们把这样的地址值存放在哪⾥呢?答案是:指针变量中。

比如:

指针变量也是⼀种变量,这种变量就是⽤来存放地址的,存放在指针变量中的值都会理解为地址。


1.2.2解引用操作符(*)

既然我们将地址保存在指针变量中,以后肯定是要去使用的,那怎么使用呢?

在现实⽣活中,我们使⽤地址要找到⼀个房间,在房间⾥可以拿去或者存放物品。

C语⾔中其实也是⼀样的,我们只要拿到了地址(指针),就可以通过地址(指针)找到地址(指针)指向的对象,这⾥必须学习⼀个操作符叫解引⽤操作符(*)。

上述代码的第5行就使⽤了解引⽤操作符,*p的意思就是打开封装在p指针的地址,并找到它指向的空间,来改变a变量。这里的*p其实就是a变量了,所以*p=20;就是把a变成了20;

其实这⾥是把a的修改交给了a来操作,这样对a的修改,就多了⼀种的途径,写代码就会更加灵活。
 

2.指针的运算

指针的基本运算有三种,分别是:

  • 指针+-整数
  • 指针-指针
  • 指针的关系运算

这里指针的运算可以类比为我们生活中的日期,那整数就可以认为是天数。

2.1指针+-整数

日期+-天数得到结果还是日期,那么指针+-整数是不是也应该还是指针呢?

因为数组在内存中是连续存放的,只要知道第⼀个元素的地址,顺藤摸⽠就能找到后⾯的所有元素。

这段代码的作用其实就是打印数组中的元素。结果为:

2.2指针-指针

日期-日期的结果是天数,那么指针-指针的结果是不是应该是整数呢?

这个整数代表的就是指针与指针的元素间隔。

上面的代码是利用了指针来模拟实现strlen的功能,结果是:

2.3指针的关系运算

结果是:

更多的指针知识待小编再学习学习,如果觉得对你有帮助就动动小手点个赞叭!!!

  • 110
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值