指针简述(C语言) 初学者必备

C语言指针重点问题解析🍐

问题引入

 在C语言中,指针的学习的是极其重要的,但是有许多初学者刚刚接触指针非常困惑,一个字形容,就是“懵”,指针之所以对初学者来说有些难理解,是因为指针是一个很抽象的东西,会让很多人产生疑问,为什么要用指针?指针的使用有哪些规则?为什么指针的定义和用法那么让人看不懂?明明可以直接使用该变量,为啥要多加一步去使用指针呢?等等之类的问题,我在刚开始学习时也有过这些问题,下面,让我们通过一些举例来一一解答这些问题吧,并对指针进行深入学习吧!


具体解答

  • 既然学习指针,那么首先要思考的问题就是“什么是指针”。要弄懂概念,必须要理解,我对指针的理解就是地址,对,就是这么简单,指针==地址。是不是一下让复杂的问题简单化了。有些同学在刚接触指针时,特别是看到代码时,就看不懂,这里建议一开始的时候不要去看代码,先通过这篇文章所介绍的内容对指针有一个比较深刻的理解,之后再通过代码去多加练习,关于代码的书写规范,下面也会讲到。

指针的表现

 让我们从几个指针体现比较典型的例子开始。

  1. 指针指向单个元素的地址
    比如以下一段代码
int n = 10;
int* p;
p = &n;

 通过p = &n;这个操作,我们使p指向了元素n所在的地址,也就是把n的地址赋给了p,假如通过p,我们就可以使用元素n了,并且通过p找到的n是n本体,而不是复制一份新的等于n的数据!这一点要注意,使用指针找到的元素都是本体,而不是复制一个副本;

  1. 指针指向数组的地址
    比如一下一段代码
int array[10]={0};
int* p;
p = array;

 通过p = array;这个操作,我们把array的地址赋给了p,之后我们可以通过*(p+i)的方法找到array数组中的元素(i是下标);

指针的使用规则

  • 必须有所指向
    使用指针之前一个最基本的规则,也是必须必须坚持的原则就是要让该指针有所指向,有所指向的意思就是,让该指针指向一个明确的地址,一个没有指向地址的指针是十分危险的,也就是我们所说的野指针,它可能会导致无法预估的错误出现!

书写规范

通常我们需要先定义一个指针(这里就拿整型数据做示例)
~~~c
int* p;
~~~
然后让该指针指向我们需要指向的位置(比如让它指向数组a)
~~~c
int a[10]={0};
p = a;
~~~
如果想通过指针使用数据的话,就是需要做如下操作(此处拿遍历做演示)
~~~c
for(int i = 0;i < 10; i++)
	printf("%d ",*(p+i));
~~~
好了,到这里一个最简单最基本的指针使用规范就介绍完毕了。

指针的作用

  1. 减少内存的使用
     在前面我们就讲到过,通过指针取值的时候,我们取到的是这个数据本身,而不是复制另一个副本,因此在此过程中,不会造成多余的内存被分配出去,极大地减少了对空间的使用(在一些大的项目工程中,作用体现得会较为明显)
  2. 快速传参
     指针最常用的一个地方之一就是传参。在函数的参数传递时,通过指针进行传参是一个十分明智的选择,因为通过上一条我们讲过的,它不会产生副本,并且是对本体进行操作的,这就会有一个十分方便的特点,就是在函数内部进行的操作,不会随着函数的结束而消失,而是在原数据上进行了体现。其实通过指针的操作结果,就是对本体进行操作,因此修改指针对应的数据就是修改本体的数据。

关于指针的一些简单的介绍我们就到这里了,如果还有疑问的地方欢迎在评论区下方留言~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值