C语言单独的代码块
发布时间:2023-05-16 13:49:16 所属栏目:语言 来源:
导读:C语言还允许出现单独的代码块,它也是一个作用域。请看下面的代码:
#include <stdio.h>
int main(){
int n = 22; //编号①
//由{ }包围的代码块
{
int n = 40; //编号②
prin
#include <stdio.h>
int main(){
int n = 22; //编号①
//由{ }包围的代码块
{
int n = 40; //编号②
prin
C语言还允许出现单独的代码块,它也是一个作用域。请看下面的代码: #include <stdio.h> int main(){ int n = 22; //编号① //由{ }包围的代码块 { int n = 40; //编号② printf("block n: %d\n", n); } printf("main n: %d\n", n); return 0; } 运行结果: block n: 40 main n: 22 这里有两个 n,它们位于不同的作用域,不会产生命名冲突。{ } 的作用域比 main() 更小,{ } 内部的 printf() 使用的是编号为②的 n,main() 内部的 printf() 使用的是编号为①的 n。 再谈作用域 每个C语言程序都包含了多个作用域,不同的作用域中可以出现同名的变量,C语言会按照从小到大的顺序、一层一层地去父级作用域中查找变量,如果在最顶层的全局作用域中还未找到这个变量,那么就会报错。 下面我们通过具体的代码来演示: #include <stdio.h> int m = 13; int n = 10; void func1(){ int n = 20; { int n = 822; printf("block1 n: %d\n", n); } printf("func1 n: %d\n", n); } void func2(int n){ for(int i=0; i<10; i++){ if(i % 5 == 0){ printf("if m: %d\n", m); }else{ int n = i % 4; if(n<2 && n>0){ printf("else m: %d\n", m); } } } printf("func2 n: %d\n", n); } void func3(){ printf("func3 n: %d\n", n); } int main(){ int n = 30; func1(); func2(n); func3(); printf("main n: %d\n", n); return 0; } (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |