A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© snowimba 中级黑马   /  2015-10-9 22:06  /  608 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关键字,作用域
1、修饰局部变量:
        1.1、static对局部变量的作用;修饰的变量,只有你的包含那个变量定义的源代码文件可以访问,内部变量
        static对局部变量的作用:
                1)延长局部变量的生命周期,从程序启动到程序退出,但是它并没有改变变量的作用域
                2)定义变量的代码在整个程序运行期间仅仅会执行一次;
void sum(){
    int num=0;//局部变量存放在栈区;
    printf("%d\n",num);
    num++;
}
void sum1(){
    static int num=0;//初始化的静态变量在数据区存放;没有释放
    printf("%d\n",num);
    num++;
}

int main(int argc, const char * argv[]) {
    // insert code here...
    sum1();
    sum1();
    sum1();

        1.2、extern只要声明就可以访问,外部变量;
                extern不能够修饰局部变量;
       
2、修饰全局变量:
        1)static作用;内部变量
                只能为源文件内部函数使用;不能声明用于其他文件
                static int num=10;
                 sum();//10
                    printf("%d\n",num);//0
                在不同的文件中,使用static可以声明同名变量;
        2)extern:外部变量
                可以在本文件中使用,可以用于外部文件,只要声明;
                extern int num1=20;
                printf("%d\n",num1);//20
                在不同的文件中且文件之间有连接,extern不能声明同名变量;
                可以在使用之前在函数内部和外部进行声明,如果是全局声明可以省略extern;
                不能声明不存在的变量;全局变量默认初始化0;
               
               
3、修饰函数;
        内部函数,只在文件内部访问
        外部函数,可以在文件外面声明访问
        1)static修饰的函数为内部函数,只能在定义的文件中使用;可以间接访问。
        2)extern修饰的函数为外部函数,系统默认的就是extern修饰,可以省略;
可以在使用之前在函数内部和外部进行声明,如果是全局声明可以省略extern;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马