初阶指针——谈谈我对指针学习的认识

初阶指针——谈谈我对指针学习的认识

(笔者学习C语言的时间不长,如果发现您在阅读时发现笔者在表述或认知方面存在问题,欢迎您通过评论的方式告知笔者,笔者感激不尽。笔者学习C语言主要参照的是郝斌老师的C语言自学系列视频,如果您对C语言感兴趣,且没有编程基础,也建议您去B站搜索郝斌C语言进行学习。)

下面笔者就自己的学习和思考谈一谈对指针浅薄的认识。

首先回答一个问题,指针是什么?

指针就是地址,我们通常所说的指针其实是指针变量。指针变量是一类能用于存放变量地址的变量,并且指针变量指向以其内部存储的内容为地址的变量。

(好像有点绕,换句话说,指针变量也是变量,既然是变量就能存储数据,只不过指针变量只能存储特殊的数据——内存单元的标识符,也就是我们说的地址。既然指针变量能存储某个变量的地址,那我们就可以通过指针变量里面存储的该变量的地址找到该变量,所以我们就说指针指向该变量。)

知道了指针是什么,接下来回答指针怎么用?(此处举例只是简单介绍指针用法)

首先定义指针变量 int * p;(*号和前面的int连在一起表示指针型数据类型)

然后赋值p=&i;(此处的变量i笔者默认已经定义了)

思考一个问题,为什么是p=&i;而不是*p=&i;

因为p才是指针型变量的变量名,而*p其实是整型(*在此处可以认为是取地址的逆运算,*p等价于其所指向的变量)

我们为什么要用指针?

1.指针可以返回两个以上的数据;

2.指针可以快速传输数据;

(笔者自认为这一块不能表达清楚)

利用指针动态分配内存的问题?

使用库函数malloc:(*p=(int*)malloc(sizeof(int)))

主要malloc函数是开辟一块空间分配给我们使用,其返回值是void*类型的,所以需要强制类型转换。(C语言函数的运行是压栈,函数结束时出栈,但动态内存是以堆排序的开辟的,不会因为函数结束而自动释放,所以需要我们手动释放)

本文受限于笔者的认知和学识,但笔者还是希望能给读完本文的您带来一点收获。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值