标签:
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
以下为自己的学习总结与学习笔记,可能有不全面不到位的地方,也欢迎大家一起分享指正。
C语言是世界上最流行、使用最广泛的高级程序设计语言之一,其主要的用途包括
1、编写系统软件、图形处理、单片机程序、嵌入式系统开发
2、编写游戏外挂
3、编写android程序
4、编写iOS程序
任何一个C语言的程序都是由一个或者多个程序段组成的,而这些有着自己功能的程序段就是函数了,说到函数,就不得不提main函数了,main函数似乎在计算机语言里是个常客,之前学过的C++,Java,可能这也就是计算机语言相通的地方。C语言的程序执行,首先是通过main函数,并且也只会执行main函数。
main函数中调用其他函数,printf函数往屏幕上输出信息,#include <stdio.h>调用系统自带的函数。
在C语言中执行程序为:1、编写代码 2、编译,即用clang编译器把代码编译为计算机能识别的0和1(指令:cc -c) 生成.o文件 3、链接,即把.o的目标文件跟系统自带的函数库合并在一起生成一个可执行文件 (链接器,指令:cc 文件名.o)
注:编译会检查语法是否正确,不会管程序是否能正常运行。链接时会考虑程序是否会正常运行(是否有main函数)
一、变量的作用域问题
变量的作用域是从定义变量的那行代码开始,一直到函数结束。
1 #include <stdio.h> 2 3 int test() 4 { 5 int a = 100; //变量a在test函数中定义,作用域到test函数中结束 6 return 0; 7 } 8 9 int main() 10 { 11 test(); 12 a = 200; //这么写不行,变量a作用范围从定义开始到test函数结束,不可访问test函数里的变量a 13 return 0; 14 }
随着学习的深入,重新理解变量的作用域是从定义变量的那行代码开始,一直到所在的代码块结束,而代码块的作用则是及时回收不再使用的一些变量,为了提升性能。
对于变量的作用域问题的一个例子:
1 #include <stdio.h> 2 int main()//main函数中多个代码块 3 { 4 int a = 20; 5 int score = a + 100; 6 printf("%d\n", score);//输出120 7 8 { 9 int score = 50; 10 { 11 score = 10;//在此代码块中未定义变量score,因此会在其外层代码块中寻找并将其值赋值10. 12 printf("%d\n", score);//此处输出10. 13 } 14 a = 10; //此处同上,将外层代码块中的a赋值为10 15 } 16 17 { 18 score = a + 250;//上层代码块执行完就销毁了,a=10,因此外层代码块中score现在赋值为260. 19 int score = 30; 20 printf("%d\n, score");//此处就近输出30 21 } 22 printf("%d\n", score);// 虽然上层代码块已经销毁但赋值了score为260,此处输出260. 23 return 0; 24 }
标签:
原文地址:http://www.cnblogs.com/twcblog/p/4374613.html