1:解释printf(“%d”,printf(“%d”,printf(“tulun”)));为什么其输出结果是tulun51
Printf输出的是字符串tulun ;
Printf输出的是字符串的长度 5 ;
Printf输出的是字符‘5’的长度 1 ;
Printf从内部开始逐个输出
2:如何从.cpp生成,exe文件,这几步分别做了什么
.cpp 预处理 编译 汇编 链接 .exe
生成exe文件就是生成可执行文件
预处理:宏替换,头文件的引入/覆盖 编译:由源程序生成汇编语言代码,进行语法检查
汇编:编译器生成目标代码,一个源文件生成一个目标代码
链接:通过符号表在库文件和其它模块中找到在目标代码中引入或未定义的符号,将几个目标代码合成可执行文件
3:查汇编指令:mov push ptr
MOV,PUSH是数据传从指令
指令写法:MOV target,source 功能:将源操作数source的值复制到target中去,source值不变
PUSH:进栈 功能:将通用寄存器/段寄存器/内存数/立即数的值压入栈中
Ptr:指定存储器操作数的数据类型属性。
4:了解float类型数据在内存中是如何存储的?
eg :13.25
13.25=(1101.01)二进制 1.10101*2^3
十进制小数 二进制小数
Float类型占四个字节
0 | 1 | 00 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
符号位 指数位 尾数位
0100 0001 0101 0100 0000 0000 0000 0000
4 1 5 4 0 0 0 0
十六进制:0x 00005441