20160122.CCPP详解体系(0001天)
2016-02-16 21:41
375 查看
程序片段(01):Hello.c
内容概要:HelloWorld
程序片段(02):1.txt+2.txt+include.c
内容概要:HelloWorld
程序片段(03):return.c
内容概要:HelloWorld
程序片段(04):system.c
内容概要:system();函数
程序片段(05):Time.c
内容概要:C语言程序结构
程序片段(06):QQ.c
内容概要:C语言编程流程
程序片段(07):1.h+define.c+代码混淆.c
内容概要:#define宏定义使用
程序片段(08):1.h+define.c
内容概要:#define宏定义使用
内容概要:HelloWorld
//01.#include表示包含的作用: // (1).<>:表示只在系统目录之下进行查找 // (2)."":表示现在当前目录下进行查找,如果在当前目录下 // 未能进行查找到,再到系统目录之下进行查找 // (3).替换:<>可以采用""进行替换,但是""不可以采用<>进行替换 #include "stdlib.h" //02.注释使用说明: // (1).多行注释:/**/,用作项目说明 // 1.第一步 // 2.第二步 // (2).单行注释:// //02.函数相关问题分析: // (1).void:表明函数的返回值类型为空 // 该函数无需使用return关键字表明该函数的返回值 // (2).int:返回值类型的特点 // Linux当中的main函数强制要求返回值类型为int类型 // (3).函数构成元素分析: // 1).()表明形式参数 // 2).()和(void)都代表函数的参数为空,效果等同 //03.编译器特性分析: // (1).C编译器会自动查找相应的静态库,进行自动引入 // C编译器宽泛 // (2).C++编译器不会自动查找相应的静态库,不会进行自动引入 // C++编译器严格 //04.system();函数的使用说明: // (1).函数所接收的参数不同,那么结果也相应的不一样 // (2).只接受字符串 // (3).常用命令说明: // 1).tasklist:查看系统进程列表(当前系统当中正在运行的进程列表) // 2).echo用于原样输出一段字符串 //05.return关键字的使用特点: // (1).用于结束函数的执行状态,指导函数出栈 // (2).return关键字之后的语句不会得到执行 // 注意: // 如果在return语句的后面还有代码语句,那么在Java语言环境下将会 // 直接编译报错,因为Java语言极度严谨不允许废话出现 int main01(void) { system("tasklist");//查看系统进程列表,"tasklist"是表明字符串 system("echo Hello World!!!");//参数不同,执行的结果不同 system("pause");//让当前进程暂停一下,等待用户输入任意键继续执行 return 1;//没有返回值,结束函数的执行状态,函数出栈 system("echo Hello China!!!"); }
程序片段(02):1.txt+2.txt+include.c
内容概要:HelloWorld
///1.txt system("notepad"); system("pause");
///2.txt //void main(){}
///include.c //01.#include使用说明: // (1).#include只是将头文件当中的声明内容原样拷贝过来 // (2).#include可以包含任何后缀类型的文件 // (3).所有被包含的文件都被当中普通文本文件内容解析 // (4).#include语句可以出现在文件(头文件/源文件)当中的任何位置 //02.重名问题分析: // 当前解决方案之下的文件不能够同名 // (注意事项:即使是同一个解决方案下的跨项目文件依然如此) //03.包含和编译的规律分析: // 包含,包含的是头文件(.h) // 编译,编译的是源文件(.c,.cpp) // (编译器会自动将.c/.cpp本质的文件进行编译,即使是修改了文件的 // 扩展名称,但是文件的本质依然还是被编译的对象) //04.VC编译器当中的提示特点: // 只是针对于代码文件(头文件/源文件)具备提示 #include <stdlib.h> int main(void) { #include "1.txt" system("pause"); return 1; }
程序片段(03):return.c
内容概要:HelloWorld
#include <stdio.h> #include <stdlib.h> //int main(void) //{ // // return; //} int add()//int整数 { return 100; } //01.CCPP当中的函数返回值特点分析: // (1).CCPP当中的main函数即使声明了整数返回类型 // 却依然可以不用显式的采用return关键字返回整数值 // (2).普通函数有些不同: // C语言当中即使声明了返回值类型也可以不用采用return // 关键字进行值的返回 // (注意:如果此时获取返回值的结果,将会是编译器指定的 // 一个固定垃圾值(表明垃圾,表明垃圾明显)) // C++语言当中只要声明了返回值类型就必须采用return // 关键字进行值的返回 // (3).CCPP编译器的不同所造成的差异: // C语言编译器: // 要求松散,很容易出错 // C++语言编译器: // 要求严格一些,结果会正确 //02.打印结果特点分析: // %d表示将内存当中的二进制数数据采用有符号十进制的方式进行解析 int main(void) { printf("%d", add()); system("pause"); return 1; }
程序片段(04):system.c
内容概要:system();函数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //01.从控制台获取一个命令字符串并且执行: // (1).C语言当中的字符数组代表的就是字符串 // (2).scanf();函数的第二项必须是地址(指针) // 数组名称比较特殊,数组名称是一个常量指针 // (3).printf();函数的第二项所需的是变量,而非指针 int main(void) { char str[100] = { 0 };//空字符串,初始化为0,'\0'(0和'\0'在这里的意义相同) scanf("%s", str);//给字符串进行赋值操作,从首地址开始,一个一个字符的映射 printf("您所需要执行的指令是:%s", str);//打印字符串 system(str);//执行系统指令 system("pause"); return 1; }
程序片段(05):Time.c
内容概要:C语言程序结构
#include <stdio.h> #include <stdlib.h> #include <Windows.h> //01.编译阶段所需做的事情: // (1).预编译: // 1).预处理阶段,凡是预处理指令内容都得进行处理 // 2).预处理指令: // (1.以"#"作为开头的命令 // (2.常见预处理指令:#define+#include // 3).预处理判断,预处理替换 // 4).预处理之后的结果还是源文件 // (2).编译: // 1).将预处理之后的源文件编译成为二进制文件(中间文件,对象文件) // 2).二进制文件特点:GCC编译结果为".o"文件,VC编译结果为".obj"文件 //02.全局声明特点: // (1).程序一旦加载进内存,全局声明的内容就立刻出现了 // (2).全局申明内容的作用域: // 从当前源文件的声明位置到跨程序源代码范围内都可见 // (只有当前源文件的声明位置开始之前不能够进行访问) int num = 100;//全局声明 //02.同步异步执行问题分析: // (1).同步异步概念: // 同步:单条执行流,从上往下进行执行,一个一个的执行,不允许跨越执行 // 异步:多条执行流,从上往下进行执行,每条执行流随机执行,没有跨越的概念 // (2).system函数的同步异步操作: // 命令字符串没有start-->同步执行-->单条执行流-->发生阻塞特点 // 命令字符串含有start-->异步执行-->多条执行流-->没有阻塞特点 // (3).system();函数的异步等同于: // 另起一个命令行窗口执行该命令,和当前命令行不属于同一个执行流 int main01(void) { //system("notepad");//后面的语句必须要等待当前程序退出,才会得到执行的机会,同步 system("notepad");//不等待退出就得到执行,叫做异步 system("tasklist&pause"); system("pause"); return 1; } int main02(void) { system("start notepad");//异步打开一个记事本 Sleep(5000); system("taskkill /f /im notepad.exe"); system("pause"); return 1; } //03.无限循环的实现方式: // (1).while(0){无限执行体;} // (2).值为非0,死循环;值为0,不循环 int main03(void) { while (1) { system("start notepad"); } system("pause"); return 1; } int main04(void) { int num = 10; printf("%d \n", num); system("pause"); return 1; } int main05(void) { system("start notepad"); main();//递归-->死循环 return 1; }
程序片段(06):QQ.c
内容概要:C语言编程流程
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <shellapi.h> //01.system();函数使用总结: // (1).早期版本可以直接跟路径,如果版本不能跟路径 // (2).指令字符串当中如果有start,则不能跟路径 // 指令字符串当中若没有start,则可以跟路径 void close() { //start不能携带路径,需要提前进入到目录,再进行命令的执行 //system("D:\\ProgramFiles\\Tencent\\QQ\\QQScLauncher.exe"); //system("\"D:\\ProgramFiles\\Tencent\\QQ\\QQScLauncher.exe\""); } //01.同步执行命令与异步执行命令: // 执行特点分析: // system(); // 1.同步执行指令字符串 // 2.不能执行携带路径的指令 // system("start "); // 1.异步执行指令字符串 // 2.不能执行携带路径的指令 // ShellExecuteA(0,"open","notepad",0,0,1); // 1.异步执行指令字符串 // 2.可以执行携带路径的指令 // 3.可定制执行携带路径的指令特点 // 第一个参数:默认-->0 // 第二个参数:操作-->"open" // 第三个参数:命令-->"notepad" // 第四五个参数:默认 // 第六个参数:0-->隐式打开;1-->默认打开;3-->最大化打开;6-->最小化打开 void openNote() { ShellExecuteA(0, "open", "notepad", 0, 0, 6); } void openQQ() { ShellExecuteA(0, "open", "D:\\ProgramFiles\\Tencent\\QQ\\Bin\\QQScLauncher.exe", 0, 0, 1); } void time() { int num = 0; scanf("%d", &num); int i = 0; while (i < num)//i>=m将不再循环 { Sleep(1000);//循环一次,睡眠1000毫秒,也就是1秒钟-->循环多少次,也就执行了多少秒 i++; printf("%d", i); } } void closeQQ() { system("taskkill /f /im QQ.exe"); } int main01(void) { //close(); openQQ(); time(); closeQQ(); system("pause"); return 1; }
程序片段(07):1.h+define.c+代码混淆.c
内容概要:#define宏定义使用
///1.h #include <stdlib.h> #include <stdio.h> //01.宏定义源文件: // (1).相当于ASCII码表的查询特点 // (2).相当于编解码特点 // (3).相当于加密的特点 #define _ void #define __ main #define ___ ( #define ____ ) #define _____ { #define ______ } #define _______ printf("Helloc China, Hello World! \n"); #define ________ system("echo 锄禾日当午, 吴伟来跳舞; 地雷埋下土, 炸成二百五! \n"); #define _________ system("ipconfig"); #define __________ system("calc");
///define.c #include <stdlib.h> #include <stdio.h> #define 给老夫跑起来 main01 #define 执行 system //01.打印输出一段文字的使用特点: // (1).输出方式的本质不同: // IO输出方式:printf(); // system方式:system("echo"); // (2).输出方式的效果完全等效 //02.宏定义#define使用特点: // #define 宏名 原始字符串 void 给老夫跑起来() { printf("Hello China, Hello World! \n"); system("echo 锄禾日当午, 吴伟来跳舞; 地雷埋下土, 炸成二百五! \n"); system("ipconfig"); 执行("calc"); system("pause"); }
///代码混淆.c //01.引入宏定义规则文件: // 1.根据规则使用宏名 // 2.宏定义解密需要宏定义规则文件 // 1.也就是所谓的宏定义规则头文件,查询宏定义规则头文件可以实现解码 // 2.预编译的时候,其实就是将宏名替换为原始的字符串 #include "1.h" _ __ ___ ____ _____ _______ ________ _________ __________ ______
程序片段(08):1.h+define.c
内容概要:#define宏定义使用
///1.c #include <stdlib.h> #include <stdio.h> #include <Windows.h> //01.头文件的性质说明: // 宏定义规则文件,根据宏定义的规则 // 进行规则的使用 #define 空类型 void #define 主函数 main #define 左括号 ( #define 右括号 ) #define 左大括号 { #define 右大括号 } #define 执行 system #define 打印 printf #define 记事本 "notepad" #define 计算器 "calc" #define 系统进程 "tasklist & pause" #define 语句结束 ;
///define.c #include "1.h" 空类型 主函数 左括号 右括号 左大括号 打印 左括号 记事本 右括号 语句结束 执行 左括号 计算器 右括号 语句结束 执行 左括号 记事本 右括号 语句结束 执行 左括号 系统进程 右括号 语句结束 右大括号
相关文章推荐
- 20160122.CCPP详解体系(0001天)
- 编程题#1:输出200(C++程序设计第10周)
- C语言获取目录下目录&文件列表
- C++ pointer
- 20160205.CCPP体系详解(0015天)
- c语言入门之项目1.5——字符数据的输入
- C++多态性
- 20160204.CCPP体系详解(0014天)
- 使用devpartner的blockchecker检查c++内存错误
- c++实用语法
- 好用的C++数据库访问层
- 20160203.CCPP体系详解(0013天)
- C语言程序设计-第7章 用函数实现模块化程序设计
- C++运算符优先级列表
- 198. House Robber(C++实现)
- 20160202.CCPP体系详解(0012天)
- 【POJ 3461】Oulipo 中文题意&题解&代码(C++)
- 【C++】顺时针打印矩阵
- 20160201.CCPP体系详解(0011天)
- 20160131.CCPP体系详解(0010天)