目录:
一、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;
}
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去内存执行代码