C程序设计进阶:局部变量VS全局变量
全局变量与局部变量
全局变量与局部变量是根据变量在程序中作用范围的不同来进行划分的。
什么是局部变量:
所谓局部变量就是在函数内部或者某个代码块的内部(所谓代码块的内部就是用大括号括起来的那些代码)定义的一些变量,就称为局部变量。
什么是全局变量:
与局部变量相比较,全局变量的作用范围更大,它的作用域从定义它的位置开始一直到这个文件的结束,换句话说,无论这个文件里面有多少个函数,从定义变量的那个地方开始,他就会一直在起作用。
重点来了
观察上面的程序,如果当全局变量与局部变量同名时,局部变量将在自己作用域内有效,它将屏蔽同名的全局变量。也就是说,在exchange函数内,如果对变量a,b进行了值得修改,它将不会影响到exchange函数外部,在main函数中最后打印的a,b仍然是全局变量a,b。
如果想对a,b的大小进行判断并变换位置,那么应将函数定义为:
void exchange(){
int p;
if(a<b){
p=a;a=b;b=p;
}
}
就是省略掉定义形式参数的部分。
写在最后
今日在coursera上无意间发现一个北大的C程序设计课程,抱着顺便复习期末考试的心态,点了进去,仔细听了一节课后发现还挺有意思儿,老师讲的很详细,也弥补了我之前在学习C的过程中剩余的一些不足。接下来,就简单记录一下其中的一个小收货吧。全当记笔记了~