zoukankan      html  css  js  c++  java
  • 02-C语言执行过程

    目录:

    一、MACOS系统操作

    二、C语言的使用方式

    三、编码

    四、编译

    五、运行

    六、分析第一个C程序

    七、预处理指令#include

    八、完整执行过程

    回到顶部

    一、MACOS系统操作

    操作计算机的两种方式:

    图形化操作方式、命令行操作方式

    命令:

    ls 显示所有文件及文件夹

    pwd 查看当前目录

    cd 切换子目录

    cd .. 返回上一级目录

    clear 清屏

    mkdir文件名 创建目录

    touch 文件名.后缀名 创建文件

    rm 删除一个文件,多个以空格隔开

    练习:创建一个文件夹Test,通过图形化操作创建,通过命令创建,通过图形化找到,通过命令找到。

    回到顶部

    二、C语言的使用方式

    1.打草稿,以文件的形式保存。->编码

    2.翻译,中文->非文,以文件形式保存。->编译(0,1)

    3.读,执行。->运行

    回到顶部

    三、编码

    编码有三种方式:

    1 vi命令行 系统自带

    2 UItraEdit 网络下载

    3 xcode 网络下载

    回到顶部

    四、编译

    1 将C语言代码转换成计算机识别的代码,即二进制码

    2 GUN C Compiler,GNU自由软件基金会的项目,C 语言,Compiler编译。

    3 编译C语言

    回到顶部

    五、运行

    运行前编译 gcc xx.c

    1 运行编译后文件a.out

    2 执行./a.out

    回到顶部

    六、分析第一个C程序

    #include <stdio.h>
    
    int main()
    {
        printf("hello world");
        return 0;
    }

    1 预处理命令#include <stdio.h>

    2 main函数,代码段,入口程序,有且只有一个

    3 语句以;号结尾为一条语句,语句以上往下依次执行

    4 printf(""),输出函数

    5 换行

    练习:1原样显示一下内容

    a*****

      ***

        *

    b  *

      ***

     *****

    c*****   *

      ***   ***

       *   *****

    #include <stdio.h>
    int main(){
        printf("*****
    ");
        printf(" *** 
    ");
        printf("  *  
    
    ");
    
        printf("  *  
    ");
        printf(" *** 
    ");
        printf("*****
    
    ");
    
        printf("*****  *  
    ");
        printf(" ***  *** 
    ");
        printf("  *  *****
    ");
        return 0;
    }

    感兴趣的可以看下循环打印的方法:

    #include <stdio.h>
    //test1打印如下图形
    //  *
    // ***
    //*****
    void test1(newRows)
    {
        int rows = newRows;
        int i;
        int j;
        for (i = 1; i <= rows; i++)
        {
            //打印空格
            for (j = 0; j < rows - i; j++)
            {
                printf(" ");
            }
            //打印*
            for (j = 0; j < 2 * (i - 1) + 1; j++)
            {
                printf("*");
            }
            //换行
            printf("
    ");
        }
    }
    
    //test2打印如下图形
    //*****
    // ***
    //  *
    void test2(newRows)
    {
        int rows = newRows;
        int i;
        int j;
        for (i = 1; i <= rows; i++)
        {
            //打印空格
            for (j = 0; j < i - 1; j++)
            {
                printf(" ");
            }
            //打印*
            for (j = 0; j < 2 * (rows - i) + 1; j++)
            {
                printf("*");
            }
            //换行
            printf("
    ");
        }
    }
    
    //test3打印如下图形
    //*****  *
    // ***  ***
    //  *  *****
    void test3(newRows)
    {
        int rows = newRows;
        int i;
        int j;
        for (i = 1; i <= rows; i++)
        {
            //打印空格
            for (j = 0; j < i - 1; j++)
            {
                printf(" ");
            }
            //打印*
            for (j = 0; j < 2 * (rows - i) + 1; j++)
            {
                printf("*");
            }
            //打印两个空格
            printf("  ");
            //打印*
            for (j = 0; j < 2 * (i - 1) + 1; j++)
            {
                printf("*");
            }
            //换行
            printf("
    ");
        }
    
    }
    int main()
    {
        int newRows = 5;
        test1(newRows);
        test2(newRows);
        test3(newRows);
        return 0;
    }
    View Code

    2 输出个人信息,姓名:年龄:性别:期望薪资:

    #include <stdio.h>
    int main(){
        printf("姓名:y
    ");
        printf("年龄:1
    ");
        printf("性别:男
    ");
        printf("期望薪资:6000
    ");
        return 0;
    }

    3 模拟登陆信息

    ========

    系统登陆

    用户名:y

    密码:***

    ========

    #include <stdio.h>
    int main(){
        printf("=========
    ");
        printf("系统登陆
    ");
        printf("用户名:y
    ");
        printf("密码:***
    ");
        printf("=========
    ");
        return 0;
    }

    回到顶部

    七、预处理指令#include

    1 在编译之前做的事情

    2 相当于复制操作,不推荐在一个文件中好汉另一个文件在

    3 加载系统提供的标准函数库

    #include <stdio.h>

    standard input output (printf)

    4 gcc –E *.c 查看编译之前的文件内容

    5 在使用#include指令时有两种方式,

    #include <> 系统提供的文件放在这里,可以在usr/include中找到相应文件。

    #include “” 自己写的文件放在这里,先找当前文件下,在去查C函数库的文件。

    回到顶部

    八、完整执行过程

    1 语句可以分开放在任意位置(多文件)

    2 代码预处理,解决所有指定(#include)

    3 编译源代码,每个源文件都会生成一个目标文件.o文件,如果程序只有一个源文件,默认忽略这一步。gcc –c x.c 生成目标文件。

    4 链接,讲多个目标文件合成一个可执行文件,如:gcc x1.o x2.o

    5 加载a.out执行程序到内存中

    6 cpu去内存执行代码

  • 相关阅读:
    分享8个超棒的免费高质量图标搜索引擎
    分享25个几何元素在网页设计中的应用案例
    推荐16个国外的源码下载网站
    分享20佳好玩的 jQuery 游戏
    快手基于 Flink 的持续优化与实践
    我的2007
    安装GPhone SDK
    asp.net如何取得纯客户端控件的值
    1111
    .NET与java的MVC模式(2):struts2核心工作流程与原理
  • 原文地址:https://www.cnblogs.com/yangmx/p/3458576.html
Copyright © 2011-2022 走看看