C Programming Language | scope of variables

19 阅读1分钟
int a = 200;
int b = 100;
void f(){ 
    int a = 1;
    b = 2; 
    printf("a=%d, b=%d\n", a, b);
}
int main(){
    f();
    printf("a=%d, b=%d\n", a, b);
}

image.png

//变量的作用范围 BEJSON云编程网 局部变量的程序 
#include <stdio.h>
void f(){
	int a = 1;
	printf("%d",a);
} 
int main(){
	f();
	//printf("%d",a);
	return 0;
} 
//局部变量,函数里面的变量,main函数不能直接调用。 

image.png

//全局变量
#include <stdio.h>
int b = 100;
void f(){
	b = 200;
	printf("%d",b);
}

int main(){
	f(); 
	printf("%d",b);
} 
//b为全局变量,void函数赋值为200打印为200;main b 不变还是100。 

image.png

函数传参数 1.赋值 把实参的值复制给形参。 2.函数的形参==函数的局部变量

#include <stdio.h>
void f(int m){
	m += 10;
}
	
int main(){
	int m = 1;
	printf("m=%d\n",m);
	f(m);
	printf("m=%d",m);
	return 0;
}

image.png

在main函数中,定义了x=10、y=10,并调用f(x,y); 函数f的参数是值传递—— 传递的是x、y的副本,而非变量本身; 在f中对参数x、y的修改(x+=1、y-=1),仅作用于副本,不会影响main函数中原始变量的值。

局部变量的产生场景 1.for(int i) 2.{} if(){} while(){} {}也能够产生一个局部变量的效果

//局部变量的产生形式:
#include <stdio.h> 
//循环变量i,只能在循环的内部使用。
//理解为局部变量
int main(){
	for(int i=0;i<10;i++){
		printf("%d",i);
	}
//	printf("%d",i);
}

image.png image.png

image.png 嵌套中i也可以用