189 8069 5689

C语言中switch如何使用

这篇文章给大家介绍C语言中switch如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联是一家专业提供汤阴企业网站建设,专注与成都做网站、网站建设、HTML5、小程序制作等业务。10年已为汤阴众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

关于switch的用法这里不再做什么总结了,其实这个是一个便捷的快速跳转条件切换器。而关于这个功能最常用的技术讨论点在于case后面的break以及default。这里不讨论这些,直接看下面的代码:

#include"stdio.h" int main(void){    int num = 0;    switch(num)    {       printf("functionrun!\n");    }    return 0;}

上面的代码中用到了一个switch,但是代码块中没有任何case以及default。代码语法有问题吗?

编译一下如下:

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>gcc switch.c

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>

由上面的结果可以看到,编译没有任何问题。那么运行会是什么状态呢?会把这个唯一的printf执行输出相应的语句?

运行如下:

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>a

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>

如此看,就有点诡异了。这个printf语句是没有执行到的!也就是说,switch语句中的代码执行必须得有case标签指示代码的入口。这种行为很让人联想到一种情况的程序执行结果,代码如下:

#include"stdio.h" int main(void){    int num = 0;    switch(num)    {       int i = 123;       printf("functionrun!\n");       default:           printf("value of iis:%d\n",i);           break;    }    return 0;}

代码是在之前的代码中修改的,代码的第二个printf会执行,可是执行的时候i的数值是多少呢?从之前的测试可以看出,局部变量后面的代码是没有执行过的,那么我这个i在每次函数执行到这里的时候会每次动态性初始化吗?

代码编译运行结果:

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>gcc switch.c

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>a value of i is:2

E:\WorkSpace2_技术实践1_编程语言1_C语言2_C和指针\switch>

从上面的结果可以得出两个结论:

1,代码块中的声明定义是起作用的;

2,i的数值不是123证明这部分的局部变量并没有进行每次的动态初始化。

关于C语言中switch如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


标题名称:C语言中switch如何使用
网页URL:http://cdxtjz.cn/article/piccgp.html

其他资讯