目录:

一、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 ;
}

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

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

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

4 printf(""),输出函数

5 \n换行

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

a*****

***

*

b  *

***

*****

c*****   *

***   ***

*   *****

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

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

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

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

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

3 模拟登陆信息

========

系统登陆

用户名:y

密码:***

========

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

回到顶部

七、预处理指令#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去内存执行代码

02-C语言执行过程的更多相关文章

  1. 黑马程序员-- C语言执行过程及注意点

    通过对程序的逐步执行,了解C语言程序执行过程: 1.编写源文件即.c文件. #include <stdio.h> void play() { printf("hello worl ...

  2. 浅析java程序的执行过程

    在研究任何一门语言时,无论是面向过程的c,c++(面向过程和面向对象),还是面向对象的.net,java等,弄清语言执行过程至关重要.  何为语言执行过程? 所谓语言执行过程,指对于任何一门语言,如j ...

  3. [转帖]浅析java程序的执行过程

    浅析java程序的执行过程 转帖来源: https://www.cnblogs.com/wangjiming/p/10315983.html 之前学习过 这一块东西 但是感觉理解的不深刻. copy一 ...

  4. c语言编译预处理和条件编译执行过程的理解

    在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令.预处理命令属于C语言编译器,而不是C语言的组成部分.通过预处理命令可扩展C语言程序设计的环境. 一.预处理的工作方式 1.1. ...

  5. 通过搭建一个精简的C语言开发环境了解一个C程序的执行过程

    一.如何搭建一个精简的C语言开发环境 准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录 1.在C盘建立一个目录minic c:\ md minic 2.从解压的目录中将以下文件拷贝到 ...

  6. c语言编译执行过程

    <h4>认识C编译执行过程</h4>认识C编译执行过程,是C学习的开端.简单说C语言从编码编译到执行要经历一下过程: C源代码编译---->形成目标代码,目标代码是在目标 ...

  7. c语言编写51单片机中断程序,执行过程是怎样的?

    Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h>  void main(void)  {   EA=1;      //开放总中断   E ...

  8. 李洪强漫谈iOS开发[C语言-002]-开发概述程序的本质与简单执行过程

    李洪强iOS开发之应用程序的本质与简单执行过程 什么叫程序? 就是一段执行指令 程序的两个状态: 保存状态(保存到硬盘上)   运行状态(由CPU执行) 代码可以执行吗? CPU(中央处理器-> ...

  9. 02 java语言基础

    常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用) A: ...

随机推荐

  1. AngularJs (二) 搭建Deployd 服务爬坑

    Deployd 爬坑 按照书上的教程,介绍Deployd 这个东东,首先进入其deployd.com/网页,发现这个东东着实厉害. THE SIMPLEST WAY TO BUILD AN API 按 ...

  2. SQL Server索引进阶:第十五级,索引的最佳实践

    在本文中我们将推荐14条贯穿本系列的规则,这些规则帮助你为数据库创建最好的索引结构. 格式来自于<Framework Design Guidelines>.每条推荐用四个词来总结:Do做, ...

  3. prototype演变

    setp1 var Person = function () {}; //构造器 var p = new Person(); setp1 演变: var Person = function () {} ...

  4. MSSQL 当前会话设置隔离级别与查询

    之前因为MySQL没有with(nolock)这种写法,于是想设置隔离级别,结果被坑. 直觉以为和MSSQL一样只要打set transaction isolation level xxx 就能搞定 ...

  5. CKEditor + CKFinder 实现编辑上传图片配置 (二)

    CKEditor + CKFinder 实现编辑上传图片配置 (二) 上传图片时,如果上传的图片过大,默认情况情况下回自动裁剪,代码如图 \ckfinder\config.php 目录下的配置文件co ...

  6. poj2987 Firing

    以前只是A过很简单的最大闭合权像hdu1565之类,完全的最大流模板题.但是都完全不太懂最大闭合权的定义及其用途. 关于最大流的基础知识,大家可以自己网上搜索关键字.有点基础的哥们妹们,推荐看看胡伯涛 ...

  7. [C#技术参考]Socket传输结构数据

    最近在做一个机器人项目,要实时的接收机器人传回的坐标信息,并在客户端显示当前的地图和机器人的位置.当然坐标的回传是用的Socket,用的是C++的结构体表示的坐标信息.但是C#不能像C++那样很eas ...

  8. Linux学习之chage命令

    功能:修改帐号和密码的有效期限用法:chage[-l][-m mindays][-M maxdays][-I inactive][-E expiredate][-W warndays][-d last ...

  9. ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)

    1.表单令牌开启配置 'TOKEN_ON'=>true 2.相对路径:在thinkphp中,存在单入口index.php,所以程序中的根目录都是以index.php所在的文件夹为根目录,故用./ ...

  10. POJ 3294 Life Forms(后缀数组+二分答案)

    [题目链接] http://poj.org/problem?id=3294 [题目大意] 求出在至少在一半字符串中出现的最长子串. 如果有多个符合的答案,请按照字典序输出. [题解] 将所有的字符串通 ...