因为goto会破坏程序的栈逻辑
4、循环控制条件关键字goto的使用场景有哪些?
尽管
goto
语句在编程中被广泛认为是不良的实践,因为它可能破坏程序的结构,导致资源泄露,引发无限循环等问题,但是在一些特定场景中,使用goto
仍然是合理的。这些场景包括:
- 错误处理和资源清理:在 C 和 C++ 等语言中,
goto
常常被用于错误处理和资源清理。例如,在打开文件或分配内存后,如果发生错误,goto
可以用于跳转到标签,进行资源清理和错误报告。然而,这种用法在面向对象的编程语言中较少使用,因为它们有更高级的错误处理机制和垃圾回收功能。- 跳出多重循环:在一些情况下,当需要在嵌套循环中满足某个条件时,可以使用
goto
直接跳转到循环之外。然而,这种用法要谨慎,因为过度使用可能导致代码难以理解和维护。通常,使用条件语句来替代goto
是更好的选择。- 实现非线性控制流程:在一些特殊情况下,
goto
可以用于实现非线性控制流程,例如用于算法的某些特殊步骤,或者实现类似于事件驱动的系统。然而,这种用法应尽可能地避免,因为它们通常会使程序变得难以理解和维护。总的来说,尽管
goto
在某些特定场景中可能有其用途,但在大多数情况下,应避免使用goto
,而应优先考虑使用结构化的控制流语句(如 if、for、while 等)来组织代码。
5. 有以下程序段, 执行后,mul 的值为 105 。
int a[ ]={1,3,5,7,9};
int mul, *data, x;
mul=1;
data=&a[1];
for(x=0; x<3; x++)
mul *= *(data+x);
该程序段使用指针
data
遍历数组a
中的元素,然后将这些元素相乘,最后将结果存储在变量mul
中。程序执行流程如下:
- 定义一个数组
a
,包含5个元素:1, 3, 5, 7, 9。- 定义一个整数变量
mul
,初始化为1。- 定义一个指向数组
a
的指针data
,并将其指向数组的第二个元素(即a[1]
)。- 使用for循环遍历数组
a
的前三个元素(从索引0到2),并将它们相乘。- 在每次循环中,使用指针
data
访问当前索引的元素,并将其乘以mul
。然后将结果存储在mul
中。- 循环结束后,
mul
的值将是 3 * 5 * 7 = 105。因此,执行完这段程序后,变量
mul
的值为105。
6. 请声明Func函数:返回值为“int *”类型,两个形参为“double”和“char *”;并定义Func函数的函数指针p,将Func函数的首地址赋给指针变量p。
// 声明Func函数
int* Func(double d, char* str);
// 定义Func函数
int* Func(double d, char* str) {
// 在这里,你可以根据d和str的值创建一个int数组,并返回它的地址。
// 这里只是一个示例,返回一个固定值的指针。
static int arr[2] = {1, 2};
return arr;
}
// 定义Func函数的指针p
int (*p)(double, char*) = Func;
7.什么是进程、线程,有什么区别?
进程是资源(CPU、内存等)分配的基本单位,线程是CPU调度和分配的基本单位。统一时间,如果CPU是单核,只有一个进程在执行。所谓并发,也是顺序,只不过由于切换速度太快,你以为这些进程在同步执行而已,多核CPU可以同一个时间点,有多进程在执行。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)
![img](https://i-blog.csdnimg.cn/blog_migrate/e676a3bd4091dd93b9bd69fb908b733e.jpeg)
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!
g" alt=“img” style=“zoom: 67%;” />
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!