02-C语言执行过程
目录:
一、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语言执行过程的更多相关文章
- 黑马程序员-- C语言执行过程及注意点
通过对程序的逐步执行,了解C语言程序执行过程: 1.编写源文件即.c文件. #include <stdio.h> void play() { printf("hello worl ...
- 浅析java程序的执行过程
在研究任何一门语言时,无论是面向过程的c,c++(面向过程和面向对象),还是面向对象的.net,java等,弄清语言执行过程至关重要. 何为语言执行过程? 所谓语言执行过程,指对于任何一门语言,如j ...
- [转帖]浅析java程序的执行过程
浅析java程序的执行过程 转帖来源: https://www.cnblogs.com/wangjiming/p/10315983.html 之前学习过 这一块东西 但是感觉理解的不深刻. copy一 ...
- c语言编译预处理和条件编译执行过程的理解
在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令.预处理命令属于C语言编译器,而不是C语言的组成部分.通过预处理命令可扩展C语言程序设计的环境. 一.预处理的工作方式 1.1. ...
- 通过搭建一个精简的C语言开发环境了解一个C程序的执行过程
一.如何搭建一个精简的C语言开发环境 准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录 1.在C盘建立一个目录minic c:\ md minic 2.从解压的目录中将以下文件拷贝到 ...
- c语言编译执行过程
<h4>认识C编译执行过程</h4>认识C编译执行过程,是C学习的开端.简单说C语言从编码编译到执行要经历一下过程: C源代码编译---->形成目标代码,目标代码是在目标 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h> void main(void) { EA=1; //开放总中断 E ...
- 李洪强漫谈iOS开发[C语言-002]-开发概述程序的本质与简单执行过程
李洪强iOS开发之应用程序的本质与简单执行过程 什么叫程序? 就是一段执行指令 程序的两个状态: 保存状态(保存到硬盘上) 运行状态(由CPU执行) 代码可以执行吗? CPU(中央处理器-> ...
- 02 java语言基础
常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用) A: ...
随机推荐
- java 请求响应乱码
package org.operamasks.servlet; import java.io.IOException; import java.io.PrintWriter; import java. ...
- 什么时候css会见less
在一定程度上,css不能被视为一个节目.虽然和其他语言,它有自己的规范.编码,但它的笨拙实在让我失望. 不喜欢css是由于不管怎么优化代码.项目大到一定程序后.都会看上去一团乱.并且有时候一个bug的 ...
- dataset 用法(2)
1.为DataTable添加列 (1)添加列 DataTable tbl = ds.Tables.Add("User"); DataColumn col =tbl.Columns ...
- SQL学习之高级联结(自联结、自然联结、外联接)
create table Customers( Id ,), Company ) null, Name ) null ) insert into Customers values('Fun4All', ...
- HTML5的绘图的支持
一.简单介绍canvas元素 <canvas.../>是HTML5新增的一个元素,该元素用于绘制图形.实际上<canvas../>只是相当于一张画布. 它除了可以指定通用属性外 ...
- 并发编程:c++11 多线程中随机数重复问题
srand(time(NULL)); 是我们熟悉的c++随机函数,用时间做种子.但由于在多线程环境下若想在子线程中随机出不同的随机数则需随机种子的不同.但time以秒计算,略显不足,故参考这篇文章解决 ...
- BZOJ 3774: 最优选择( 最小割 )
最小割...二分染色然后把颜色不同的点的源汇反过来..然后就可以做了. 某个点(x,y): S->Id(x,y)(回报), Id(x,y)->T(代价), Id(i,j)&& ...
- Linux学习之Center os网络配置
首先介绍一下VMware的网络连接方式.我们的主机通常经过物理网卡与局域网和Internet相连接,而虚拟机既已被称之为虚拟计算机,那虚拟网卡也必然存在,而如果我们想让虚拟计算机能连接到局域网或者In ...
- ubuntu 源码安装 swig
1. 下载 swig 源码 http://www.swig.org/survey.html 填写一个简单的问卷,即可进入 sourceforge 下载. 2. 安装 g++ sudo apt-get ...
- 1.PHP 教程_PHP 简介
PHP是服务器端脚本语言. 在学习之前,您需要对以下知识有基本的了解: HTML css PHP是什么? PHP代表PHP:Hypertext Preprocessor PHP是一种使用广泛的开源的脚 ...