• 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 ", 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。如果局部变量在定义时不初始化,则初始值是不确定的,所以,局部变量在使用前一定要先赋值,不管是通过初始化还是赋值运算符,如果读取一个不确定的值来使用肯定会引入Bug。

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

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

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

  • 相关阅读:
    巴菲特最推崇的10本书
    如何锻炼剑术基本功
    Ubuntu 20.04 LTS, CUDA 11.2.0, NVIDIA 455 and libcudnn 8.0.4
    缘起性空
    Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效
    Calcite分析 -- Register
    go超时控制有4种写法,你知道吗?
    npm install node-sass报错处理
    IDEA + maven热部署及自动编译不生效问题
    1-STM32+CH395Q(以太网)远程升级篇(自建物联网平台)-STM32通过ch395使用http下载程序文件,升级程序(单片机程序轮训检查更新)
  • 原文地址:https://www.cnblogs.com/hxu7373/p/3450000.html
Copyright © 2020-2023  润新知