zoukankan      html  css  js  c++  java
  • C语言学习笔记(1)

     

    1. 编译和链接

    将程序转化为机器可执行的代码,C语言分为三个步骤:

    A. 预编译。程序首先会交给预处理器,预处理器执行以#开头的指令,然后给程序添加指令,或者修改指令。

    B. 编译。修改后的程序进入编译器,编译器会把程序翻译成机器指令(也就是目标代码),但是这样的程序还是不能执行的。

    C. 链接。链接器把由编译器产生的目标代码和其他所需的代码整合到一起,这些附加代码包括程序中用到的库函数。这样就产生了完全可执行的程序。

    2. main函数中的exit和return

    在main函数中,以两者结尾是一样的。都是终止程序执行,并且向操作系统返回0。

    不过exit需要引入stdlib.h库函数。

    #include <stdio.h>
    #include <stdlib.h>
    int main (void)
    {
    printf("Hello world");
    exit(0);
    //return 0;
    }

    3. %i和%d

    在printf中使用时,两者没有区别,但是在scanf中,%d只能接受10进制的整数。

    但是%i还可以接受八进制和十六进制的整数。

    #include <stdio.h>
    #include <stdlib.h>
    int main (void)
    {
    int i ;
    scanf_s("%i",&i);
    printf("%d",i);
    }

    image

    4. scanf函数

    scanf本质上是一种“模式匹配”函数。

    但是在Visual Studio中调用scanf函数时会给出这样的提示:The function may be unsafe.Please using scanf_s instead.

    当用户从键盘输入时,程序并没有读取输入,而是把用户的输入放在一个隐藏的缓冲区中,由scanf来读取。因此如果用户输入了多余的字符,scanf无法彻底完成模式匹配,scanf就会把字符放回缓冲区供后续scanf函数的读取。

  • 相关阅读:
    【转】numpy.random.randn()与rand()的区别
    【转】numpy.random.randn()与rand()的区别
    春节一顿饭,吃懂了分布式资源调度
    春节一顿饭,吃懂了分布式资源调度
    ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
    系统设计摘录CAP
    webapi上传文件
    webuploader上传工具
    Js学习文件上传
    K-means算法Java实现
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/2083230.html
Copyright © 2011-2022 走看看