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。
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////