c语言标识符的概念,C语言标识符的定义
#包含stdio.h
int x=20
作废打印_x(作废){
Puts (-print _ x函数调用文件范围-);
printf(x=%d\n ,x);
}
int main(void){
int I;
int x=88
print _ x();
puts(-);
printf(x=%d\n ,x);
Puts (-for循环体打印循环体内部块范围-);
for(I=0;i5;i ){
int x=i * 100
printf(x=%d\n ,x);
}
puts(-);
printf(x=%d\n ,x);
}运行结果:
因为print_x函数中没有定义变量,所以会引入函数外定义的变量x=20
当在main函数内部打印一个x变量时,它会在内部搜索x变量是否被定义。如果是,它将根据最近原则打印main内部定义的变量,否则,它将打印main函数体外部的变量。
for循环在循环体中打印变量,当for语句的循环结束时,变量x的名字将失效。
所以,当最后一个printf函数被调用时,x的值显示了在mian函数中x=88的定义;
#包含stdio.h
int x=20
int main(void){
puts(-);
printf(x=%d\n ,x);
int x=88
puts(-);
printf(x=%d\n ,x);
}运行结果:
总结:
如果两个同名的变量分别有文件作用域和块作用域,那么只有块作用域的变量会“可见”,而文件作用域的变量会“隐藏”。当具有相同名称的所有变量都被赋予块范围时,内部变量是“可见的”,而外部变量是“隐藏的”。根据函数接近性原理,先找出函数体中是否有已定义的变量。如果没有,它将在函数体的外层寻找变量。否则,程序将报告一个错误。程序从上到下一个一个执行。
如果变量定义在被引用变量的下面而不是上面,那么函数体下面的变量将不会被调用。
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。