前因
女友在我的建议下,打算接受我的计算机培训,目标是成为一个能通过写程序赚钱的妹子
一切皆加法
你知道ENIAC吗,上百科,上面有
每秒加法运算5000次
有加法运算够了吗?可以算乘法吗?可以算减法吗?
a+b = a+ (-b)
其实计算机知懂得1和0的:
逻辑
&且与
|或 任意一条都可以,没有一条就不可以
!非
用下图表示:
女友非让我表示!非的关系,表示电路也够呛啊,用唱反调来表示。
开始写程序
掏出记事本边描述边写:
硬盘存在{
if(aaaaaa)
return 存在
else
return 不存在
}
开机{
if(硬盘存在)
{
启动;
}
else
{
弹窗口“硬盘丢失”
}
}
直接上硬盘识别……
表明逻辑关系,函数的必要-分块管理。结构清楚。
调用的关系和返回值的问题,后者比较难理解。
她提出非用0和1吗?
0:false : 假
1:true : 真
赋值顺序
a=true
b=false
a=b; 此时a是0还是1?
直接上VS调试查看逻辑关系,验证猜想结果:
简单叙述了什么是断点.
开始一个示例程序:
//这是爱的宣言,是我今天写的
bool is_Success = true;
is_Success = (MB_OKCANCEL==MessageBoxA(0,"你爱李吗","爱的宣言",MB_OKCANCEL))&&
(MB_OKCANCEL==MessageBoxA(0,"你爱他吗","爱的宣言",MB_OKCANCEL));
//变量,常量
if(is_Success)
{
MessageBoxA(0,"恭喜","",MB_OK);
}
else
{
MessageBoxA(0,"牵手失败","",MB_OK);
}
她提问:bool 是什么? a 是什么?
a是变量
变量引出常量**const,以及**static和extern。
extern
封装的意义:
她问:所有的源码都是能看到的吗?
答:并不是,商业保护引出DLL
可执行程序的扩展名都可以有哪些?
这些可执行程序的扩展名是谁定的?微软。
API概念。
她:惊叹微软很厉害
扩展名和内容之间的关系。
可执行程序都是相同的,只是扩展名不同。
举例,某同学问.dat文件为何打不开?
原来.dat是date的缩写,而错被显示为视频文件.
怎么才能知道一个文件到底是什么文件呢?看来后缀不靠谱。
讲起自己U盘坏了修复后都成了没有后缀名的文件。
提出问题:
如何区分没有后缀名的文件到底是什么文件?
她提出jpg是可执行文件吗?为何可以打开?
解释注册机制。
用exe做示范.找规律:
MZ是个标记。顺带讲其中逸事。
她问:左边的数字字母是什么?是ASCII码吗?
开始查一下即可!发现正是。
继续看jpg文件,寻找易识别的标记。
我们发现了扩展名和内容没有必然关系。正确决定性的是内容。
继续讲:特征码和早期病毒查杀的关系。
以及有些作者为了保护自己的作品会使用扩展名欺诈的手法。
End
她依然兴趣盎然!
整个过程是她的好奇心在带动。