在函数中定义的变量称为自动局部变量。因为每次调用该函数时,它们都自动“创建”,并且它们的只对于函数来说是局部的,局部对象的变量都会默认为空。局部变量的值只能在定义该变量的函数中访问,不能从函数之外访问。
静态局部变量用关键字static声明,它们的值在函数调用的过程中保留下来,并且初始默认为0.在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值。
结构体可以看作是轻量型的对象。
在自己看来的一个程序,在系统开来只是一个函数,所以称为main函数,它唯一与众不同之处在于它的名字很特别:它指明了程序开始执行的位置。事实上,main函数是在程序开始执行时,由运行时系统调用,就像在自己的程序中调用函数一样。当main执行完毕后,控制权返回给运行时系统,这样系统便知道程序已经执行完毕了。当运行时系统调用main函数时,系统向该函数传递两个参数。第一个参数按照规定称为argc,是一个整型值,它指明了从命令行输入的参数个数。第二个传递给main的参数时一个字符指针数组,按照规定称为argv。另外,这个数组中包含argc+1个字符指针。该数组的第一个元素是执行程序的名称指针,如果你的系统中没有程序名称,则是空串。数组的其他项指向由启动程序执行的命令行所指定的值。数组argv中的最后一个指针argv[argc]规定为空。
命令行参数,在终端向main函数传递参数,第一个参数为程序名称,其后的参数就是你向传递给main函数的参数值。
从整个观念看来,每个大括号都是一个域,域内的变量对外都是不可见的,域外的变量对域内是可见的。
系统就好比是一个死循环的函数,从开机就开始循环运行,每个应用程序在系统开来只不过是一个名字为main的函数而已,当你点击程序,系统调用,当你结束程序,程序返回。从上看到下,每个库仅仅是事先写好的代码,当你引用只不过是复制过来,这样节省了编程者的时间,增加了编程的效率。每个函数方法对于他就是做一件事情,所需的参数就是他做这个事情需要的条件,你拿给他,调用他,他就给你返回你需要的结果。
所谓的全局变量,因为你是放在程序大括号外面,所以你对于其他的域都是可见的,这就是所谓的全局变量。局部变量在大括号之内的的变量对于这个域就是局部变量。只在这个域内存在可见。静态,就是说这个变量可以记忆所有操作后的结果。