【问答汇总】【雪国列车】LeetCode零基础 (第五讲)指针

零、帖子简介

本贴用于汇总**【LeetCode零基础九日集训】【雪国列车】 第五讲——指针** 的学习中,大家遇到的问题,以及扩展资源
打卡贴:https://bbs.csdn.net/topics/603610592

一、问答汇总

本部分用于收集大家学习中的疑问以及回答,包括微信群中的问题,以及大家在本帖下发布的问题,并将优质回答进行汇总

  1. i & 1的作用?

用二进制编码来看整数,末尾是1的一定是奇数(…1),按位与1(0001)得到的值一定是1,反之偶数一定为0,在C语言中这相当于true和false

  1. sizeof(数组名) VS sizeof(数组指针),这两者的区别是?

img
(《深入理解计算机系统》第31页)

  1. (int *)malloc(…)是什么意思?

强制类型转换,编译器在编译时会标识该如何读取这个地址指向的值(取多少来读、编码方式是什么)
img
(第32页)

  1. 这个报错怎么处理? stray(’\357’)
    img

这个一般是有中文的字符,可能从别的地方复制过来的空格都会显示这样的错误,是由于字符的编码方式不同,此时重新敲一遍也许可以解决。

  1. 为什么我在LeetCode上malloc的内容不需要free?

因为LeetCode在测试你的函数时有自己的主函数,在调用完之后他进行的free

  1. 函数参数里的int *returnSize如何理解?

仔细看文章,里面有解释,这个参数是用来传出我们return出去的数组的大小的,因为需要传出去,所以使用指针告诉我们要填到哪个地址里去,否则外面接收不到.
img

  1. ret[i] = s[(i + k) % n]如何理解?
    img

把数据代进去
img
(阳懿的学习报告)

  1. int *ret = (int *)malloc(sizeof(int) * numsSize);这句怎么理解?

创建了一个大小为numsSize的int数组,首地址赋值给ret

int *ret = 地址; ///< 让指针指向某个地址
(int *)变量      ///< 将变量强制转化为指向int的指针,以int对指向的地址进行解析
malloc(字节数)   ///< 申请字节数大小的空间,以void *的格式返回首地址
sizeof(变量)     ///< 获取变量的所占字节大小
  1. 分不清数组和指针怎么办?

先不管,能用就行
后面慢慢多看看关于指针的文章,看看计算机系统的原理,慢慢理解掌握就行
数组和指针有着千丝万缕的关系,具体的还需要看代码和书

  1. 数组名 = 指针吗?

不等于,数组名还有数组的大小的信息,不仅仅是首地址
指针不麻烦,只是他一开始只是一个地址,需要给这个地址赋予意义(占空间,给数据一个家),同时还可以通过指针指向一个数据的地址,通过偷家的方式修改数据

  1. 为什么我malloc的数据不能直接 +=

里面的数据是随机数值,可能需要用memset的方式赋初值,也可以直接不用+=,直接先赋值再使用

  1. 感觉不看题解不会做题自己很拉胯怎么办?

一开始脑子里没有相关知识点或者无法串联进行应用是正常的,重要的是通过每天的做题、思考、总结,有新的收获,每天坚持进步一点点。
只要能通过题解推动知识点的吸收理解,先会用再弄懂原理,不能理解的看别人的学习报告以及在群里讨论,总结进步慢慢就能学会很多。
做题没有思路就通过题解模仿思路,或者看已经总结完成的相关书籍(《大话数据结构》、《算法图解》…),慢慢总结出自己的思路和思考框架。
坚持正在做的,每天坚持学习和进步。

  1. ret[returnSize++] =如何理解?

这是简化的写法 = ret[returnSize] = ; returnSize = returnSize + 1;,这样写可以少写一行,也不妨碍理解
可以代入数值走一遍

  1. ‘%%’ 和 ’%‘ 的区别?

没有区别,只是在格式化输出的时候 printf(" %%",…),在format里敲%%,可以输出’%'符号
而直接赋值 c = '%%'的话其实是以后面那个字符为准,且有些编译器可能不支持这样的溢出

  1. memset怎么用?

用于批量赋值,memset(首地址, 要赋的值, 要赋值的字节大小)

  1. 前几天题目水,现在题目好难

前几天是建立信心和熟悉LeetCode环境的
学到了么?搞懂一个知识点快乐么?一天下来是不是还是挺有收获的?
以前不想做题指向刷视频,现在养成习惯刷题、先输入后输出,有在慢慢搞懂。
img

  1. 递归怎么理解?

把递归看做循环,控制好条件就行。 @名为逗比,请细讲

  1. 改了函数名和参数会编译失败?

是的,因为LeetCode在测试的时候把调用的方法已经写死了,你不能改他的函数名、参数数量和类型

二、优质学习报告

本部分用于发布优质学习报告的链接

  1. 【***】阳懿
  2. Alex
  3. 悟空三打奥特曼
  4. 【***】指针学会了吗?
  5. crisp制药
  6. 奔走的王木木Sir
  7. 【***】句子哟
  8. 一直不停息的蜗牛
  9. HL_DZON
  10. 罅隙-
  11. 星星-adcbiss1234
  12. 【***】0解题者1
  13. 执久呀
  14. 申晓宇
  15. 狐誩.
  16. variate
  17. Mainz
  18. 星狱
  19. 未见花闻
  20. Healer说这题太baby了
  21. Arcticmew_世黎
  22. Risso
  23. 障障才没有秃
  24. cr-own
  25. 名为逗比
  26. 【***】妙先生
  27. 【***】在森林里麋了鹿9
  28. 扛着输液瓶的小王
  29. 赵子平796

三、扩展资料

本部分用于汇总可以帮助进一步学习和理解的资料

  1. 《让你不再害怕指针》-高司机
    原版链接(2010年)
    转载重新排版-码农印象
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值