zoukankan      html  css  js  c++  java
  • 20160122.CCPP详解体系(0001天)

    程序片段(01):Hello.c
    内容概要: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和''在这里的意义相同)
        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 
    ", 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! 
    ");
    #define ________ system("echo 锄禾日当午, 吴伟来跳舞; 地雷埋下土, 炸成二百五! 
    ");
    #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! 
    ");
        system("echo 锄禾日当午, 吴伟来跳舞; 地雷埋下土, 炸成二百五! 
    ");
        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"
    
    空类型 主函数 左括号 右括号
    左大括号
        打印 左括号 记事本 右括号 语句结束
        执行 左括号 计算器 右括号 语句结束
        执行 左括号 记事本 右括号 语句结束
        执行 左括号 系统进程 右括号 语句结束
    右大括号
  • 相关阅读:
    boost之实用工具
    boost之内存池
    boost之智能指针
    boost之日期date_time
    boost之时间timer
    boost之网络通信
    boost之定时器和io_service
    【Linux 线程】线程同步《一》
    【Linux 线程】常用线程函数复习《四》
    【Linux 线程】常用线程函数复习《三》
  • 原文地址:https://www.cnblogs.com/new0801/p/6176839.html
Copyright © 2011-2022 走看看