变量作用域1

代码块作用域

#include  < stdio.h >

int  main()
...
{
 
int main_scop=0;
 
for(int i=0;i<2;i++)
 ...
{
  
int for_scop=1;
 }


 for_scop 
+=1;   //for_scop : undeclared identifier
 printf("for_scop : %d  ",for_scop);

 
return 0;
}
 


想要能使用for_scop的话,只要让for_scop在main函数体中声明,而不是在for复合语句块中定义.

文件作用域

#include  < stdio.h >

void  MyPrint( void )
...
{
    printf(
"main_scop : %d  ",main_scop);  //main_scop' : undeclared identifier
}


int  main()
...
{
    
int main_scop=0;

    
for(int i=0;i<2;i++)
    ...
{
        
int for_scop=1;
    }


    MyPrint();
    
return 0;
}


 因为main_scop在main函数中作用,在MyPrint中不作用,想要使用他,可以将他声明成文件作用域,也就是通常说的
全局变量,或者使用参数来传递,是函数与函数间交流
全局变量代码如下:

#include  < stdio.h >

/**/ //
// global variable

int  file_scop;
/**/ //
void  MyPrint( void )... {
    printf(
"main_scop : %d  ",file_scop); 
}

int  main()... {
    file_scop
=0;
    
for(int i=0;i<2;i++)...{
        
int for_scop=1;
    }

    MyPrint();
    
return 0;
}



参数传递代码:

#include  < stdio.h >

void  MyPrintHelp( int  n)
...
{
    printf(
"main_scop : %d  ",n); 
}


int  main()
...
{
    
int main_scop=0;

    
for(int i=0;i<2;i++)
    ...
{
        
int for_scop=1;
    }


    MyPrintHelp(main_scop);
    
return 0;
}


可见函数参数可以虚拟的扩大变量的作用域,如果一个函数的参数已经固定,你可以在为他添加一个帮助函数,使他的
一部分参数和固定的函数参数一样,另一部分是要扩大范围的变量的虚拟代表!推荐使用,避免使用全局变量!
第一个代码块作用域的例子也可以用函数参数来延续for_scop的作用域
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值