zoukankan      html  css  js  c++  java
  • 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。

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

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

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

  • 相关阅读:
    Mysql:mysqlslap:基于5.7.36的修改版:不自动创建测试schma、不删除测试schema、默认生成初始化记录数为1
    Mysql:mysqlslap:自带的简单压力测试工具:使用、bug等:续(为了方便阅读)
    《微服务设计》
    E: Unable to locate package vim
    'dependencies.dependency.version' for org.testng:testng:jar is either LATEST or RELEASE (both of them are being deprecated)
    Linux
    硬盘IO性能估算入门
    [转载]在 Linux 中使用 fsck 命令修复文件系统
    阿里巴巴 P8、P9 及以上到底是什么水平?
    课程表-python
  • 原文地址:https://www.cnblogs.com/hxu7373/p/3450000.html
Copyright © 2011-2022 走看看