Welcome

首页 / 软件开发 / C语言 / 学点C语言(34):函数 - 关于变量

学点C语言(34):函数 - 关于变量2010-04-30 博客园 万一1. 局部变量:

局部变量也叫自动变量,它声明在函数开始,生存于栈,它的生命随着函数返回而结束.

#include <stdio.h>

int main(void)
{
auto int i = 9; /* 声明局部变量的关键字是auto;因可以省略,几乎没人使用 */

printf("%d ",i);
getchar();
return 0;
}

2. 全局变量:

全局变量声明在函数体外,一般应在函数前; 每个函数都可以使用它,不过全局变量应尽量少用.

#include <stdio.h>

void add(void);
void mul(void);

int gi = 3; /* 全局变量 */

int main(void)
{
printf("%d ",gi); /* 3 */

add();
printf("%d ",gi); /* 5 */

mul();
printf("%d ",gi); /* 10 */

getchar();
return 0;
}

void add(void) {
gi += 2;
}

void mul(void) {
gi *= 2;
}

全局变量会被初始化为空,而局部变量在没有赋值前是一个垃圾值:

#include <stdio.h>

int gi; /* 全局变量 */

int main(void)
{
int i; /* 句柄变量 */

printf("%d,%d ",gi,i);

getchar();
return 0;
}

当全局变量与局部变量重名时,使用的是局部变量:

#include <stdio.h>

int a = 111,b = 222;

int main(void)
{
int a = 123;
printf("%d,%d ",a,b); /* 123,222*/

getchar();
return 0;
}