100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言中static关键字和break/continue在for/while循环中的作用

C语言中static关键字和break/continue在for/while循环中的作用

时间:2021-04-22 19:30:47

相关推荐

C语言中static关键字和break/continue在for/while循环中的作用

前言

此篇博客对C语言的基础知识稍加总结,包括C语言中的static关键字作用,三大循环语句中出现的break和continue对循环体的影响,常量,生命周期,作用域,字符串,转义字符等等,其中常见的错误以及需要注意的事项在这里将会表现的淋漓尽致。

文章目录

前言1.变量的作用域和生命周期2.转义字符3.关键字static作用4.#define作用5.while/for语句中的break和continue小结

1.变量的作用域和生命周期

在下面的知识点中会用到作用域和生命周期,因此在这里稍微说明一下。

作用域:通俗来说是限定代码中用到的名字的可用性范围。一般局部变量的作用域是变量所在的局部范围,而全局变量的作用域是整个工程。

生命周期:指的是变量的创建到变量的销毁这段时间称为生命周期。局部变量的生命周期是进入作用域生命周期开始到出作用域生命周期结束。全局变量的生命周期是整个程序的生命周期。

常量:不变的值C语言中用常量表示。它分以下几种:

1.字面常量。如:1000.

2.const修饰的常变量。如const float pai=3.14f.

3.#define定义的标识符常量。如#define MIN 60.

4.枚举常量。如:

enum Time{hour,minute,second};

2.转义字符

字符串的结束是以\0为标志的,在计算字符串长度的时候,不包含此符号。以下是常见的转义字符。

?:在书写连续多个问好时使用防止被解析成三字母词。

':表示 '字符常量

“:表示一个字符串内部的双引号”

\:表示一个反斜杠

\a:警告字符

\b:退格符

\n:换行

\r:回车

\t:水平制表符

\v:垂直制表符

\ddd:ddd表示三位的八进制的数字.如:\260

\xddd:ddd表示3个十六进制数字。如:\x3fe

如下笔试题所示:

在计算strlen的时候将\t,\32,按照转移字符形式输出。

关键字typedef:类型重命名的意思。如:

typedef unsigned int uint_32; //意思是将unsigned int 重命名为uint_32。

3.关键字static作用

在C语言中static是用来修饰变量和函数的。

1.修饰局部变量

static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束生命周期才结束。

void test1(){int i = 0;i++;printf("%d ", i);}void test2(){static int i = 0;i++;printf("%d ", i);}int main(){for (int i = 0; i < 10; i++){test1();}printf("\n");for (int i = 0; i < 10; i++){test2();}printf("\n");system("pause");return 0;}

结果如下图所示;

2.修饰全局变量

全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。如下所示:

//add.cstatic int g_val = ;//test.c,使用add.c中的变量在编译时会出现连接性错误。int main(){printf("%d\n", g_val);return 0; }

3.修饰函数

static修饰函数,使得函数只能在本源文件内使用,不能在其他源文件内使用。例如:在add.c源文件中定义函数:

//add.cstatic int Add(int x,int y){return x+y;}//test.c调用add.c中的Add函数会发生连接性错误。int main(){printf("%d\n",Add(2,3));return 0;}

4.#define作用

#define定义标识符常量,如:#define MAX 100

#define定义宏,如:#define ADD(x,y) ((x)+(y))

5.while/for语句中的break和continue

break在while循环中的作用:循环体中只要遇到break,就停止后期的所有的循环,直至终止循环。也就是说while中的break是用于永久终止循环的。如下代码所示:输出结果是:1 2 3 4

#include <stdio.h>int main(){int i = 0;while(i<=10){i=i+1;if(i == 5)break;printf("%d ", i);}return 0;}

continue在while循环中的作用:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。如下代码所示:输出结果是:1 2 3 4 6 7 8 9 10

int main(){int i = 0;while (i <= 10){i = i + 1;if (i == 5)//break;continue;printf("%d ", i);}system("pause");return 0;}

break和continue在for循环中:通过验证,for循环中也可以出现break和continue,他们的意义基本上和while相同。

小结

之前有接触到static修饰的变量以及函数和for循环中的break和continue,对其含义总是模棱两可,通过对此处反复推敲,学习理解,基本上熟悉了它不合时宜的出现的意思,知道它出现就有意想不到的结果 ,哈哈,加油,年轻人!


本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。