The First Week

ONE:

可执行文件(exe)生成的过程

1、预处理

源文件(.c)和头文件(.h)----->预处理文件(.i) ,该过程是(预处理器)处理 #include <.h>、
#include “*.h”、#define *** 等预处理指令的过程,其本质是文本复制。

2、编译

预处理文件(.i)----->汇编文件(.s),该过程是(编译器)将高级语言翻译为汇编语言的过程。

3、汇编

汇编文件(.s)----->目标文件(.o),该过程是(汇编器)将汇编语言翻译为二进制机器语言的过程
4、链接

目标文件(.o)----->可执行文件(.exe),该过程(链接器)将生成的目标文件和库文件链接在一起,从而形成可执行程序


标准输入输出函数:

printf()和scanf()函数

1、printf()

Created with Raphaël 2.3.0 屏幕 stdout缓冲区 程序

printf函数的基本结构是:printf(“格式化字符串”,参数列表…)

  • 函数在调用时直接向屏幕输出格式化字符串的内容,如果是普通字符则原样输出到stdout,如果是转换说明(%m.pX)则按照规定格式将参数转化为字符输出stdout,之后屏幕从缓冲区中取走全部字符。
  • 转换说明中m代表最短匹配宽度(默认为1),如果m>显示的字符,那就在显示字符前面不足空白字符。
  • 转换说明中p代表精度,如果X是整数且p>显示的数字的位数,则在数字前面补足"0";如果X是浮点数,则表示保留几位小数。

常见的装换说明符:

%d:有符号十进制整数
%u:无符号十进制整数
%x:无符号十六进制整数
%f:单精度浮点数
%lf:双精度浮点数
%c:字符
%s:字符串
%p:打印地址
%%:打印一个百分号

2、scanf()

Created with Raphaël 2.3.0 键盘 stdin缓冲区 程序

scanf函数的基本结构是:scanf(“格式化字符串”,参数列表…)

  • scanf函数本质是模式匹配函数,函数在调用时会按照格式化字符串的内容依次去stdin中匹配字符串,如果是普通字符则精确匹配,如果匹配失败则匹配下一个格式化字符;如果是空白字符则不精确匹配,一个空白字符会匹配≥0个空白字符,遇到非空白字符则匹配下一个格式化字符;如果是转换说明则按照格式匹配,匹配失败则下一个格式化字符。

  • %d、%f的匹配规则:忽略前面的空白字符,直到遇到有效字符,之后再读到空白字符是匹配结束。

  • %c的匹配规则:直接匹配缓冲区的一个字符,包括空白字符。

  • 全部匹配完成之后返回匹配成功的次数,成功零次则返回"-1"。


表达式和运算符:

表达式
任何一个可以表示一个值的式子都是表达式,每个表达式都会代表一个值。
最简单的表达式:变量和常量。

运算符

请添加图片描述

注:“++”、“–”、“=” 这三个运算符会产生副作用,前两者会使操作数 ±1,后者会使左操作数的值变成右操作数的值。


局部变量和全局变量:

作用域和存储期限

存储期限分为:
①自动存储期限:放在栈区,函数出栈就没了。
②静态存储期限:放在数据段,与天地同寿。
③动态存储期限:放在堆区,除非程序员主动去释放,否则那片空间一直被占用,直到进程结束。

1、局部变量

定义在函数中的变量。
作用域:块作用域,从定义开始一直到块的末尾。
存储期限:一般是自动存储期限,但是如果用 static关键字修饰之后就变成静态存储期限。

2、全局变量

定义在函数外的变量
作用域:文件作用域,从定义开始一直到文件的末尾。
存储期限:静态存储期限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值