当前位置: 首页 > news >正文

【C语言】指针和数组笔试题解析(1)

指针是C语言的灵魂,他的玩法多种多样,这篇文章带来指针的笔试题详解,可以帮助我们更好的理解与巩固指针的知识

目录

  • 预备知识:
  • 题目:
    • 一维数组:
    • 二维数组:

题目比较多,但切记戒骄戒躁,保持空杯心态,相信看完一定会有提升
开始之前要先来一点预备知识:

预备知识:

数组名:

数组名大部分情况下是首元素地址,但有两种情况例外
1.当sizeof(数组名),此时数组名代表整个数组,求出的是整个数组的大小,单位是字节。
2.当&数组名,此时数组名代表整个数组,取出的是整个数组的地址,虽然与首元素地址相同,但含义不一样。

sizeof:

sizeof是一个操作符,可以求变量(类型)所占空间的大小。

strlen:

strlen是一个为库函数,可以获取字符串\0之前的长度

一一一一一一一一一分割线一一一一一一一一一一

题目:

分为两部分,第一部分时一维数组,第二部分是二维数组,逐步攀升难度

假设都在32位机器下进行

一维数组:

第一组:

//一维数组
int a[] = {1,2,3,4};
printf("%d\n",sizeof(a));//1
printf("%d\n",sizeof(a+0));//2
printf("%d\n",sizeof(*a));//3
printf("%d\n",sizeof(a+1));//4
printf("%d\n",sizeof(a[1]));//5
printf("%d\n",sizeof(&a));//6
printf("%d\n",sizeof(*&a));//7
printf("%d\n",sizeof(&a+1));//8
printf("%d\n",sizeof(&a[0]));//9
printf("%d\n",sizeof(&a[0]+1));//10

答案:

1.16
a代表整个数组,每个数组元素是int类型,一共4个元素,故为16字节大小
2.4
a为首元素地址,当地址进行±运算时,与指针类型有关,a的类型为int*,所以+0时,地址会向前跳过0个整形,仍旧是首元素地址
3.4
a为首元素地址,当解引用时,得到的是arr[0],也就是第一个整形元素,大小为4
4.4
a为首元素地址,当地址进行±运算时,与指针类型有关,a的类型为int*,所以+1时,地址会向前跳过1个整形,而数组是连续存放的,故地址会指向第二个数组元素。
5.4
a[1]是一个整形,为数组第二个整形元素,大小是4字节
6.4
&数组名代表的是取出整个元素的地址,但不管是什么地址,在32位下地址都是4个字节大小
7.16

此题有两种解法:
1.*与&结合会相互抵消,数组名在sizeof中就是求出整个数组的大小
2.&数组名取出的是整个数组的地址,当地址进行解引用时,与指针类型有关,解引用一个数组指针类型的内容,就会访问一个大小为此数组的内容,即4个整形变量的数组,大小为16字节

8.4
a代表整个数组,当地址进行±运算时,与指针类型有关,而此数组指针的类型是 int(*)[4], 数组指针+1会跳过一个数组,也就是跳过4个整形的数组,而运算后的结果仍旧是地址,故答案为4
9.4
&a[0]代表的是第一个元素的地址,地址大小为4字节
10.4
&a[0]代表的是第一个元素的地址,当地址进行±运算时,与指针类型有关,整形指针+1会跳过一个整形,即&a[0]+1指向数组第二个元素,为第二个元素的地址,大小为4个字节

一一一一一一一一一分割线一一一一一一一一一一
第二组:

//字符数组
char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", sizeof(arr));//1
printf("%d\n", sizeof(arr+0));//2
printf("%d\n", sizeof(*arr));//3
printf("%d\n", sizeof(arr[1]));//4
printf("%d\n", sizeof(&arr));//5
printf("%d\n", sizeof(&arr+1));//6
printf("%d\n", sizeof(&arr[0]+1));//7

答案:
1.6
arr在sizeof中为整个数组,求出的是整个数组的大小,单位是字节,结果为6字节
2.4
arr此时为首元素地址,类型为char*,字符指针+0会跳过0个字符大小,此时仍指向首元素地址,地址大小为4字节
3.1
arr此时为首元素地址,类型为char*,解引用arr会访问一个char大小的内容,为数组第一个元素,大小为1字节
4.1
arr[1]代表数组第二个元素,类型为char,大小为1字节
5.4
arr代表整个数组,取出的是整个数组的地址,地址的大小为4字节
6.4
arr代表整个数组,取出的是整个数组的地址,当地址进行±运算时,与指针类型有关,数组指针的类型为 char (*)[6] ,数组指针+1会跳过一个数组,在这就是跳过6个字符,运算后的结果依然是地址,大小为4
7.4
&arr[0]代表第一个元素的地址,当地址进行±运算时,与指针类型有关,字符指针+1会跳过一个字符,&arr[0]+1代表第二个元素地址,大小为4字节
一一一一一一一一一分割线一一一一一一一一一一
第三组:

char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", strlen(arr));//1
printf("%d\n", strlen(arr+0));//2
printf("%d\n", strlen(*arr));//3
printf("%d\n", strlen(arr[1]));//4
printf("%d\n", strlen(&arr));///5
printf("%d\n", strlen(&arr+1));//6
printf("%d\n", strlen(&arr[0]+1));//7

答案:
1.随机值
arr为首元素地址,但arr数组中没有’\0’,故结果为随机值
2.随机值
arr为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+0会向前跳过0个字符,地址不变,而arr数组中没有’\0’,故结果为随机值
3.err
arr为首元素地址,*arr为第一个元素’a’,传入strlen中会把a的ASCII码值当做地址,而此地址为野指针,会报错。
4.err
arr[1]为数组第二个元素’b’,传入strlen中会把b的ASCII码值当做地址,而此地址为野指针,会报错。
5.随机值
arr为整个数组地址,首先要知道strlen的参数为在这里插入图片描述
传入strlen后数组指针会被强转为char *类型,而他们两的值是一样的,故结果为随机值
6.随机值
arr为整个数组地址,当地址进行±运算时,与指针类型有关,数组指针+1会向前跳过一个数组,故此时地址为跳过一个数组的地址,由于不清楚什么时候遇到’\0’,故为随机值
7.随机值
&arr[0]为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+1会向前跳过一个字符,故此时地址为跳过一个字符的地址,由于不清楚什么时候遇到’\0’,故为随机值
一一一一一一一一一分割线一一一一一一一一一一
第四组:

char arr[] = "abcdef";
printf("%d\n", sizeof(arr));
printf("%d\n", sizeof(arr+0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr+1));
printf("%d\n", sizeof(&arr[0]+1));

答案:
1.7
arr代表整个数组,在sizeof中会求出整个数组的大小,为7字节,因为写成字符串形式自带’\0’
2.4
arr为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+1会向前跳过1个字符,故此时地址为跳过一个字符的地址,则结果为4
3.1
arr为首元素地址,类型为char* ,解引用时会访问一个字节,为’a’,字符a的大小为1的字节
4.1
arr[1]为数组中第二个元素的地址,为char类型,大小为1字节
5.4
arr为整个数组地址,&arr为整个元素的地址,是地址就是4个字节
6.4
arr为整个数组地址,&arr为整个元素的地址,类型为char(*)[7],数组指针+1会跳过1个数组,&arr+1为跳过一个数组后的地址,是地址大小就是4字节
7.4
&arr[0]为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+1会向前跳过1个字符,故此时地址为跳过一个字符的地址,则结果为4
一一一一一一一一一分割线一一一一一一一一一一
第五组:

char arr[] = "abcdef";
printf("%d\n", strlen(arr));//1
printf("%d\n", strlen(arr+0));//2
printf("%d\n", strlen(*arr));//3
printf("%d\n", strlen(arr[1]));//4
printf("%d\n", strlen(&arr));//5
printf("%d\n", strlen(&arr+1));//6
printf("%d\n", strlen(&arr[0]+1));//7

答案:
1.6
arr为首元素地址,因为字符串自带\0,故传入首元素地址后会得到\0之前的字符串个数,也就是6
2.6
arr为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+0会向前跳过0个字节,故传入首元素地址后会得到\0之前的字符串个数,也就是6
3.err
arr为首元素地址,解引用后得到字符a,会将字符a的ASCII码值当做地址传入strlen,由于此地址为野指针,故会error
4.err
arr[1]为字符b,会将字符b的ASCII码值当做地址传入strlen,由于此地址为野指针,故会error
5.6
arr为整个数组地址,&arr为整个元素的地址,传入strlen后数组指针会被强转为char *类型,而他们两的值是一样的,故结果为6

6.随机值
arr为整个数组地址,&arr为整个元素的地址,类型为char(*)[7],数组指针+1会跳过1个数组,&arr+1为跳过一个数组后的地址,传入strlen后数组指针会被强转为字符指针类型
7.5
arr[0]为数组首元素,&arr[0]为首元素地址,当地址进行±运算时,与指针类型有关,字符指针+1会向前跳过1个字符,故得到的结果为5
一一一一一一一一一分割线一一一一一一一一一一
第六组:

char *p = "abcdef";
printf("%d\n", sizeof(p));//1
printf("%d\n", sizeof(p+1));//2
printf("%d\n", sizeof(*p));//3
printf("%d\n", sizeof(p[0]));//4
printf("%d\n", sizeof(&p));//5
printf("%d\n", sizeof(&p+1));//6
printf("%d\n", sizeof(&p[0]+1));//7

答案:
1.4
p为字符指针,是指针大小就为4字节
2.4
p+1指向数组第二个元素,但仍旧是地址,是地址就是4字节
3.1
p为字符首元素地址,解引用得到首元素,类型是char,故大小为1字节
4.1
p[0]可以写成*(p+0),也就是数组第一个元素,类型是char,大小是1字节
5.4
&p是字符指针的地址,是地址大小就为4字节
6.4
&p是地址的地址,当地址进行±运算时,与指针类型有关,&p的类型为char**,+1会跳过一个char*类型的,但仍旧是地址,为4字节
7.4
&p[0]为首元素地址,类型是字符指针,+1会跳过一个字节,但仍旧是地址,为4字节
一一一一一一一一一分割线一一一一一一一一一一
第七组:

char *p = "abcdef";
printf("%d\n", strlen(p));//1
printf("%d\n", strlen(p+1));//2
printf("%d\n", strlen(*p));//3
printf("%d\n", strlen(p[0]));//4
printf("%d\n", strlen(&p));//5
printf("%d\n", strlen(&p+1));//6
printf("%d\n", strlen(&p[0]+1));//7

答案:
1.6
p为字符串的首元素地址,传入strlen中得到6
2.5
p为字符串首元素地址,当地址进行±运算时,与指针类型有关,字符指针会跳过一个字节指向b,将b的地址传入strlen中得到5
3.err
p为字符首元素地址,解引用得到首元素,会将字符a的ASCII码值当做地址传入strlen,由于此地址为野指针,故会error
4.err
p[0]为字符a,会将字符a的ASCII码值当做地址传入strlen,由于此地址为野指针,故会error
5.随机值
&p得到的是字符指针的地址,由于不知道何时出现\0,故为随机值
6.随机值
&p是地址的地址,当地址进行±运算时,与指针类型有关,&p的类型为char**,+1会跳过一个char*类型的,由于不知道何时出现\0,故为随机值
7.5
&p[0]为首元素地址,类型是字符指针,+1会跳过一个字节,故得到5

二维数组:

int a[3][4] = {0};
printf("%d\n",sizeof(a));//1
printf("%d\n",sizeof(a[0][0]));//2
printf("%d\n",sizeof(a[0]));//3
printf("%d\n",sizeof(a[0]+1));///4
printf("%d\n",sizeof(*(a[0]+1)));//5
printf("%d\n",sizeof(a+1));//6
printf("%d\n",sizeof(*(a+1)));//7
printf("%d\n",sizeof(&a[0]+1));//8
printf("%d\n",sizeof(*(&a[0]+1)));//9
printf("%d\n",sizeof(*a));//10
printf("%d\n",sizeof(a[3]));//11

开始之前要明确几个概念:
二维数组是数组的数组
每一行的数组名是a[0],a[1],a[2]
在这里插入图片描述

答案:
1.48
a是二维数组的数组名,在sizeof中表示整个数组,那么得到的结果就是整个数组的大小,为48字节
2.4
a[0][0]为第一个元素,类型是int,故大小为4字节
3.16
a[0]是第一行的数组名,数组名放在sizeof中就代表第一行整个数组,为16字节
4.4
a[0]是第一行数组名,他不在sizeof中,也没有取地址,故为第一行首元素地址,当地址进行±运算时,与指针类型有关,+1后指向第一行第二个元素,但依旧为地址,那就是4字节
5.4
a[0]+1为第一行第二个元素地址,解引用后成为int类型的元素,故为4字节
6.4
a不在sizeof中,也没有取地址,故为首元素地址,二维数组的首元素地址为第一行数组的地址,类型为int(*)[4],+1跳过一个4字节的数组,指向第二行数组,但依旧是地址,故为4字节大小
7.16

此题有两种方法:
1.a+1为第二行数组的地址,解引用后就是整个第二行数组,则sizeof后就是第二行整个数组的大小,为16字节
2.*(a+1)就是a[1],a[1]就是第二行的数组名,放在sizeof中就是求第二行整个数组的大小,为16字节

8.4
&a[0]是第一行数组的地址,+1后就是第二行数组的地址,是地址的话就是4字节
9.16
解引用第二行数组地址找到的就是第二行整个数组,sizeof后就是16字节
10.16
a不在sizeof中,也没有取地址,故为首元素地址,即为第一行数组地址,解引用就是整个第一行数组,大小为16字节
11.16
sizeof是操作符,不会执行,故也不会越界,在编译时就会算出结果

欢迎讨论与纠错,下篇也是笔试题,但是不是关于sizeof与strlen,而是会更灵活的运用

相关文章:

【C语言】指针和数组笔试题解析(1)

指针是C语言的灵魂,他的玩法多种多样,这篇文章带来指针的笔试题详解,可以帮助我们更好的理解与巩固指针的知识 目录 预备知识:题目:一维数组:二维数组: 题目比较多,但切记戒骄戒躁&a…...

Vue中组件的三种注册方式

组件的注册 1.全局注册: 在全局注册中,你需要确保在 Vue 根实例之前导入并注册组件。通常,你会在入口文件(例如 main.js)中执行这些操作。 // main.jsimport Vue from vue; import App from ./App.vue;// 导入全局组…...

docker 和k8s 入门

docker 和k8s 入门 本文是云原生的学习记录,可以参考以下文档 k8s https://www.yuque.com/leifengyang/oncloud 相关视频教程可参考如下 https://www.bilibili.com/video/BV13Q4y1C7hS?p2&vd_source0882f549dac54045384d4a921596e234 相对于公有云&#x…...

基于Yolov8的交通标志牌(TT100K)识别检测系统

1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的(SOTA)模型,它建立在先前YOLO成功基础上,并引入了新功能和改进,以进一步提升性能和灵活…...

使用Python编写一个多线程的12306抢票程序

国庆长假即将到来,大家纷纷计划着自己的旅行行程。然而,对于很多人来说,抢购火车票人们成了一个令人头疼的问题。12306网站的服务器经常因为流量高而崩溃,导致抢票变得越来越严重异常困难。 首先,让我们来了解一下1230…...

DT Paint Effects工具(三)

管 分支 使用细枝 叶 力 使用湍流 流动画 渲染全局参数 建造盆栽植物...

SpringBoot整合Mybatis

目录 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;编写Mapper接口 &#xff08;3&#xff09;编写Mapper映射文件 &#xff08;4&#xff09;编写yml配置文件 &#xff08;5&#xff09;编写测试类 &#xff08;1&#xff09;引入依赖 <dependency>…...

Java后端使用POST请求向mysql中插入Json数据的问题

1.后端请求正常 但数据表中value没有值 原因 json数据属性不符合spring解析格式&#xff0c;json属性名称的大写字母不符合spring要求 以下为为错误示范 1 Test 以大写字母开头&#xff0c; 2 tTest 小写字母开头&#xff0c;但是第二个字母是大写解决方案 实体类属性加上Jso…...

豆瓣图书评分数据的可视化分析

导语 豆瓣是一个提供图书、电影、音乐等文化产品的社区平台&#xff0c;用户可以在上面发表自己的评价和评论&#xff0c;形成一个丰富的文化数据库。本文将介绍如何使用爬虫技术获取豆瓣图书的评分数据&#xff0c;并进行可视化分析&#xff0c;探索不同类型、不同年代、不同…...

SpringBoot整合Easy-ES操作演示文档

文章目录 SpringBoot整合Easy-ES操作演示文档1 概述及特性1.1 官网1.2 主要特性 2 整合配置2.1 导入POM2.2 Yaml配置2.3 EsMapperScan 注解扫描2.4 配置Entity2.5 配置Mapper 3 基础操作3.1 批量保存3.2 数据更新3.3 数据删除3.4 组合查询3.5 高亮查询3.6 统计查询 4 整合异常4…...

IDEA控制台取消悬浮全局配置SpringBoot配置https

IDEA控制台取消悬浮 idea 全局配置 SpringBoot(Tomcat) 配置https&#xff0c;同时支持http 利用JDK生成证书 keytool -genkey -alias httpsserver -keyalg RSA -keysize 2048 -keystore server.p12 -validity 3650配置类 Configuration public class TomcatConfig {Value(&quo…...

MySQL8--my.cnf配置文件的设置

原文网址&#xff1a;MySQL8--my.cfg配置文件的设置_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL8的my.cnf的配置。 典型配置 [client] default-character-setutf8mb4[mysql] default-character-setutf8mb4[mysqld] #服务端口号 默认3306 port3306datadir /work/docker…...

Qt基于paintEvent自定义CharView

Qt基于paintEvent自定义CharView 鼠标拖动&#xff0c;缩放&#xff0c;区域缩放&#xff0c; 针对x轴&#xff0c;直接上代码 charview.h #ifndef CHARVIEW_H #define CHARVIEW_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #inclu…...

Mac FoneLab for Mac:轻松恢复iOS数据,专业工具助力生活

如果你曾经不小心删除了重要的iOS数据&#xff0c;或者因为各种原因丢失了这些数据&#xff0c;那么你一定知道这种痛苦。现在&#xff0c;有一个名为Mac FoneLab的Mac应用程序&#xff0c;它专门设计用于恢复iOS数据&#xff0c;这可能是你的救星。 Mac FoneLab for Mac是一种…...

代码随想录二刷day30

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、力扣332. 重新安排行程二、力扣51. N 皇后三、力扣37. 解数独 一、力扣332. 重新安排行程 class Solution {private LinkedList<String> res;private Li…...

工业检测 ocr

采用OpenCV和深度学习的钢印识别_菲斯奇的博客-CSDN博客采用OpenCV和深度学习的钢印识别[这个帖子标题党了很久&#xff0c;大概9月初立贴&#xff0c;本来以为比较好做&#xff0c;后来有事情耽搁了&#xff0c;直到现在才有了一些拿得出手的东西。肯定不会太监的。好&#xf…...

LVS负载均衡群集

这里写目录标题 LVS负载均衡群集一.集群cluster与分布式1.特点&#xff1a;2.类型1&#xff09;负载均衡群集 LB2&#xff09;高可用群集 HA3&#xff09;高性能运输群集 HPC 3.分布式1&#xff09;特点 二.LVS1.lvs的工作原理2.lvs的三种工作模式1&#xff09;NAT 地址转换2&a…...

安卓截屏;前台服务

private var mediaProjectionManager: MediaProjectionManager? nullval REQUEST_MEDIA_PROJECTION 10001private var isstartservice true//启动MediaService服务fun startMediaService() {if (isstartservice) {startService(Intent(this, MediaService::class.java))iss…...

C++ PrimerPlus 复习 第八章 函数探幽

第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 &#xff08;上&#xff09; 第四章 复合类型 &#xff08;下&#xff09; 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数——C的编程模块&#xff08;上&#xff…...

JavaScript-Ajax-axios-Xhr

JS的异步请求 主要有xhr xmlHttpRequest 以及axios 下面给出代码以及详细用法&#xff0c;都写在了注释里 直接拿去用即可 测试中默认的密码为123456 账号admin 其他一律返回登录失败 代码实例 <!DOCTYPE html> <html lang"en"> <head><…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...