c语言学习总结(2)

目录

1、math.h头文件编译

2、main函数分析(待补充)

3、局部变量,函数中定义的变量

///////////////////////////////////////////////////////////////////////////////////////////////

1、math.h头文件编译

math.h在用gcc编译时如下:

gcc main.c -lm

需要在后面加-lm,因为数学函数位于libm.so库文件中(通常在/lib目录下),-lm 选项告诉编译器,我们程序中用到的数学函数要到这个库文件里找。而大部分库函数(例如printf )位于libc.so库文件中,以后称为libc,使用libc中的库函数在编译时不需要加-lc 选项,当然加了也不算错,因为这个选项是gcc 默认的。

///////////////////////////////////////////////////////////////////////////////////////////////

2、main函数分析

main函数的特殊之处在于,他在执行的时候自动被系统调用,系统已经认准了main这个名字。main函数return 0表示返回值是0,该返回值是返回给操作系统看的,如果执行成功就返回0,如果不成功则返回非0值。

++++++++++++++++++++++++++++++++++++++++++++++++++++++

main函数的标准定义形式是:

int main(int argc, char *argv[])

///////////////////////////////////////////////////////////////////////////////////////////////

3、局部变量,函数中定义的变量

一个函数中定义的变量称为局部变量,该变量不能被被另一个函数使用。如:

  int hour=10, minute=10;

void print_time(int hour, int minute)
{
        printf("%d:%d\n", hour, minute);
}
int main(void)
{
        int hour = 23, minute = 59;

    print_time();
        print_time(hour, minute);
        return 0;

}

第一个print_time()打印出来时10,10;第二个print_time打印出来的是23,59

这两个函数中的hour和minute,虽然名字相同,但是存储的空间地址是不一样的,只不过存储的值相等而已。局部变量每次函数调用的时候都会分配存储空间,每次函数返回时释放存储空间,全局变量在整个程序开始之前就分配存储空间,在程序结束时释放存储空间,所有的函数都可以通过全局变量名来访问他们。

///////////////////////////////////////////////////////////////////////////////////////////////

4、C语言中的全局变量必须使用常量表达式,比如下面两个的定义是不合法的:

  ①double pi = acos(-1.0);

  ②int minute = 360;
     int hour = minute / 60;

///////////////////////////////////////////////////////////////////////////////////////////////

5、全局变量在声明时如果没有赋值,则初始值是0 ,也就是说,整型的就是0 ,字符型的就是'\0' ,浮点型的就是0.0。如果局部变量在定义时不初始化,则初始值是不确定的,所以,局部变量在使用前一定要先赋值,不管是通过初始化还是赋值运算符,如果读取一个不确定的值来使用肯定会引入Bug。

///////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////

posted @ 2013-11-29 17:20  tony7373  阅读(180)  评论(0编辑  收藏  举报