C语言局部变量(普通局部变量,与static局部变量)和全局变量(普通全局变量和static全局变量 )

    技术2024-05-29  75

    #include<stdio.h> #include<string.h> #include<stdlib.h> int main0()//局部变量 { int i,j;//这里的 i,j两个都是局部变量 for (int k=0;k<5;k++)//这里的 k也是局部变量,一旦for循环结束,k自动释放 { printf("%d \n",10); } return 0; } void fun()//静态局部变量 { static int i=1; i++; printf("%d \n",i); } int main1() { fun(); fun(); fun(); } void fun1() { extern int i; printf("%d \n",i); } //int i=1; int main2() { fun1(); printf("%d ",i); }

    static全局变量 1.static全局变量和普通全局变量的区别就是作用域不一样(文件作用域) 2.extern关键字只适用于普通全局变量 3.普通全局变量,所有文件都能使用,别的文件不能使用 4.不同文件只能出现一个普通全局变量的定义 5.一个文件只能有一个static全局变量的定义,不同文件间static全局变量,就算名字相同,也没有关系 普通局部变量 1.在{}内部定义的变量就是局部变量 2.只有执行到定义变量这个语句,系统才会给这个变量分配空间 3.当离开{},这个非static局部自动释放 4.局部变量的作用域在当前{},离开此{},无法使用 5.不同的{}中,变量名字可以一样 static局部变量 1.static变量不初始化,默认值为0; 2.static局部变量初始化语句只执行一次,可以赋值多次; 3.static在编译阶段就分配空间,在函数还没有调用时,它就已经存在 4.static只能常量初始化 5.static局部变量只有在整个程序结束时,才会自动释放 普通全局变量 1.在{}外面(函数外面)定义的变量为全局变量 2.只有定义了全局变量,任何地方都能使用此变量 3.如果使用变量时,在前面找不到此全局变量的定义,需要使用extern声明后才可以使用 4.全局变量不初始化,默认赋值为0 5.声明只是针对全局变量,不是针对局部变量 6.全局变量只能定义一次,可以声明多次

    Processed: 0.035, SQL: 9