gpt4 book ai didi

c++ - 符号 ":"在 C 和 C++ 中意味着什么?

转载 作者:行者123 更新时间:2023-11-30 20:43:51 25 4
gpt4 key购买 nike

那么为什么 switch case 使用冒号“:”呢?不可以这样写吗-

switch(foo) {
case 1 {
do_stuff();
}
case 2 {
do_other_stuff();
}
case default {
do_default_stuff();
}
}

那么,为什么“:”与 switch 和 case 一起使用?

更一般地说,符号“:”在 C 和 C++ 中意味着什么?

我发现的唯一信息是它与goto有关。 ,我认为在 c 和 cpp 中不再使用它了。

最佳答案

冒号通常在 C 和 C++ 语法中用于指示标签:执行可以跳转到的位置,该位置不是由显式 block 确定的。

这就是我的意思。在 if语句,执行将跳过第一个 block 或 else堵塞。在这两种情况下,都会跳过整个 block 。在 while循环,执行跳转到 block 开始之前,或者使用 break条件的声明/失败,位于 block 之外。

基本上,C 和 C++ 中的大多数跳转都是基于 block 和关键字发生的。

一个goto可以跳转到函数内的任何任意标签(C++ 有一些关于如何“任意”跳转的说法),无论 block 定义如何。而switch语句只能跳转到不同的case/default位置在其自己的 block 内,并且仅对一个这样的位置执行此操作,这些位置不会创建范围的 block (正如我们有时希望它们那样)。这些位置不定义专有代码的部分;执行直接通过标签(这就是 break 语句通常与 case/default 一起使用的原因)。

简而言之,case/default行为更像是标记为 goto比普通的 C 或 C++ block 结构。因此,它们使用相同的语法来表示它们:冒号。

关于c++ - 符号 ":"在 C 和 C++ 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com