二三、编译器 1、OneDefinitionRule 1)转化单元 我们写好的每个源文件(.cpp,.c)将其所包含的头文件(include<xxx.h>)合并后,称为一个转化单元。 编译器单独的将每一个转化单元生成为对应的对象文件(.obj),对象文件包含了转化单元的机器码和转化单元的引用信息(不在转化单元中定义的对象)。 最后链接器将各个转化单元的对象文件链接起来,生成我们的目标程序。 比如在对象文件A中包含了定义在其它转化单元的引用,那么就去其它转化单元的对象文件中寻找这个引用的定义来建立链接,如果在所有的对象文件中都找不到这个定义,那么就会生成一个链接错误。 2)未定义行为...

  K7lWVooM01S4   2023年12月24日   39   0   0 C++

二一、函数(四) 1、推断函数模板返回类型 1)引:将以下函数改写为一个函数模板 intave(inta,intb) { return(a+b)/2; } intave(floata,fintb) { return(a+b)/2; } doubleave(inta,floatb) { return(a+b)/2; } //参数和返回值为2种数据类型的函数模板 template<typenameT1,typenameT2>//模板定义时,可以定义多个类型 T1ave(T2a,T1b) { return(a+b)/2; } intmain() { std::cout<&l...

  K7lWVooM01S4   2023年12月16日   35   0   0 C++

二二、函数(五) 1、static和inline 1)静态变量 利用static可以声明一个静态变量,static变量如果没有指定初始化的值,那么会初始化为0,无论有没有指定初始值,都只会初始化一次,静态变量的值不会因函数大括号结束而消失。语法如下 //static语法 static类型变量名称; //示例 staticinta; //count变量在函数Add()第一次调用的时候会初始化为0,当第二次Add()调用时,则不再初始化count变量 intAdd(inta,intb) { staticintcount;//第二次Add()调用时,则count为1 count; 。。。 } ...

  K7lWVooM01S4   2023年12月16日   121   0   0 C++

十九、函数(二) 1、函数参数之接受不定量参数 1)普通函数不定量传参用法 //接受不定量参数的函数 include<cstdarg>//引入头文件cstdarg intAdd(unsignedcount,...)//第一个参数为参数的个数,第二个参数为三个. { intrt{}; charc_arg;//声明一个指针变量 va_start(c_arg,count);//将参数数据指针赋值给c_arg for(inti=0;i<count;i)rt+=va_arg(c_arg,int); va_end(c_arg);//释放指针 returnrt; } std:...

  K7lWVooM01S4   2023年12月03日   29   0   0 C++

十八、函数(一) 1、函数概述 1)函数带来的好处 ①代码模块化,便于阅读维护 ②代码模块化以后,能够实现分工合作 ③减少重复代码,降低工作流 2)函数的语法 //函数的语法 返回类型函数名称(参数,参数,参数,参数)//参数的语法包括:参数类型参数名称 { 函数的功能区; return返回值; } //函数的声明示范一 intAdd(inta,intb) { returna+b; } 使用: inta=Add(100,200);//a=300 //函数的声明示范二 voidPrintLog(charstr) { std::cout<<"日志:"<<str; } 使...

  K7lWVooM01S4   2023年12月01日   24   0   0 C++

十七、C字符串(二) 1、字符串的应用 需求:设计一个程序,用户输入属性id或者pass或者role可以把对应的内容显示出来,给定字符串如下: stringstr{"id=user;pass=632105;role=郝英俊;"}; //设计一个程序,用户输入属性id或者pass或者role可以把对应的内容显示出来 include<iostream> include<string> usingstd::string; intmain() { stringstr{"id=user;pass=632105;role=郝英俊;"}; stringstrIn; stringou...

  K7lWVooM01S4   2023年11月26日   30   0   0 C++

十六、C字符串(一) 1、原生字符串实现将两个字符串拼接 //原生字符串实现将两个字符串拼接 include<iostream> include<locale> intmain() { charstrA[0x10]="123";//定义字符串 charstrB[0x10]="456"; setlocale(LC_ALL,"chs"); charstrC[0x20];//定义一个临时的字符数组 memcpy(strC,strA,strlen(strA));//先通过memcpy将字符串A放入临时字符数组中 memcpy(strC+strlen(strA),strB,st...

  K7lWVooM01S4   2023年11月25日   31   0   0 C++

十四、指针和引用(四) 1、字符处理(字符串) 1)字符串 ​日常生活中,单个字符无法满足我们的需求,比如一个单词hello要由五个字符组成,名字张三要由两个中文字符来组成,我们把这种连续的字符称为字符串,字符串在内存中的表现就是连续的字符。比如hello在内存中是这样子的。 ​注:字符在内存中也是数字,字符串以0结尾,即\0就是数字0 H e l l o \0 72 101 108 108 111 0 ​连续的内存空间就是数组,因此可以用数组或者来自来声明一个字符串 //通过数组声明字符串 include<iostream> intmain() ...

  K7lWVooM01S4   2023年11月24日   73   0   0 C++

十五、联合体(union) 1、union语法 ​联合体和结构体都是自定义数据类型,通过union可以创建一个联合体,union中的成员变量共享内存(即内存中有重叠的部分),因此union的数据类型大小由其最大的成员变量决定。 //联合体union语法 union联合体名称 { 变量类型变量名称; 变量类型变量名称; }; //示例 unionUSER//联合体声明 { shortsHP; intnHP; }; USERuser;//联合体使用 user.sHP=200; 2、union的特点及使用 ①union中任意一个成员变量的变动,都可能导致其他成员变量的值发生变化 ②union...

  K7lWVooM01S4   2023年11月24日   26   0   0 C++

十二、指针和引用(二) 1、指针和数组的关系 1)思考 ​假设你要设计一种编程语言,你要如何实现数组呢?思考之前请先牢记:数组在内存中是连续的,维度由低到高(大部分操作系统下)。 2)汇编分析数组如何实现 //C代码 include<iostream> intmain() { inta[5]{}; intptrA{&a[0]}; ptrA=5;//通过指针设置数组的值 a[0]=5;//通过数组下标设置数组的值 a[1]=5; } //上述代码汇编分析 inta[5]{}; intptrA{&a[0]}; 00A51840moveax,4//eax=4 00...

  K7lWVooM01S4   2023年11月22日   39   0   0 C++

十一、指针和引用(一) 1、指针 1)思考 ​在计算机程序中,有一条铁律那就是万物皆内粗,而我们知道,内存就是一个个小格,存放着高电平或者低电平,也就是0或者1,我们要表达的一切都是通过这种二进制的方式放到内存中,当我们读取、写入,其实局势在对应的内存空间执行读或者写操作 ​我们今天就研究研究,当我们读取和写入的时候,背后的故事,首先我们需要知道我们读取和写入的内存地址,因为内存里有很多个小格,就好比一栋楼有很多住户,你要找好朋友张三,你就要知道他家的地址,你不能挨个去敲门,因为这样会被打死...,其次来说,效率也很低。 ​再者来讲,你还要知道你到底要读取多少格的内容,或者写入多少格的内容,因...

  K7lWVooM01S4   2023年11月18日   36   0   0 C++

九、循环(二) 1、while循环 1)while循环语法 //while循环语法 while(条件表达式)//条件表达式是一个bool类型的值 { 循环语句; } //示例 inti=9; while(i<0) { i--; std::cout<<i; } 2)while循环嵌套 //while循环嵌套语法 while() { while() { } } 3)while(整数) while(i)//i如果是整数值,编译器会将其默认转化为bool类型 { } 4)跳出循环 注:goto、break、continue可以跳出循环 5)案例: ​需求:设计一个程序,要...

  K7lWVooM01S4   2023年11月17日   26   0   0 C++

十、数组 1、数组的概念 1)引出数组 需求:学校为了统计学生的信息,需要设计一个程序,要求如下,一共有十个学员,要求依次输入各位学员的学号,并将其打印出来。 include<iostream> intmain() { intstudentId1,studentId2,studentId3,studentId4,studentId5; std::cin>>studentId1; std::cin>>studentId2; std::cin>>studentId3; std::cin>>studentId4; std::cin>...

  K7lWVooM01S4   2023年11月17日   27   0   0 C++

五、位运算 ​位运算主要计算内存中每个小格的数据 1、输出二进制内容 头文件调用 语法 示例 include<bitser> std::bitset<要显示的二进制位数>(要显示的变量) std::cout<<std::bitset<16>(a); //二进制内容输出 include<iostream> include<bitset> intmain() { inta{0b100000001100}; std::cout<<std::bitset<16>(a); } 2、左...

  K7lWVooM01S4   2023年11月17日   28   0   0 C++

六、判断(一) 1、关系运算符 1)每一个关系运算符得出的结果都是一个布尔类型值(true、flase或真、假或1、0) 关系运算符 说明 关系运算符 说明 > 大于 >= 大于等于 < 小于 <= 小于等于 等于 != 不等于 include<iostream> intmain() { inta{500}; intb{1000}; boolc=ab;//false std::cout<<c<<std::endl; c=(a<=b);//true std::cout<<c<&l...

  K7lWVooM01S4   2023年11月17日   26   0   0 C++

七、判断(二) 引:学校举办了一个抽奖获得,根据学号给予学生奖励,学生奖励如下: 学号 奖励 15692 现金500 65432 现金450 98741 现金250 2531 现金150 666 学号2 321 学号2 //if语句实现 include<iostream> intmain() { unsignedintsId{},sPr{};//定义学生学号和奖励 std::cout<<"请输入你的学号:"; std::cin>>sId; if(sId15692)sPr=500; if(sId65432)s...

  K7lWVooM01S4   2023年11月17日   29   0   0 C++

八、循环(一) 1、for循环 1)for循环语法 //for循环语法 for(初始化表达式;运行条件表达式;变动表达式) { 循环内容; } //示例 for(inti=0;i<10;i) { std::cout<<i<<std::endl; } std::cout<<"循环结束"; ①打印9-1 //打印9-1 include<iostream> intmain() { for(inti=9;i>0;i--) { std::cout<<i<<std::endl; } } ②打印所有大写字母 //打印...

  K7lWVooM01S4   2023年11月17日   30   0   0 C++

靶机介绍 1)靶机地址:https://download.vulnhub.com/presidential/Presidential.ova 2)靶机难度:中 3)打靶目标:取得root权限+2Flag 4)涉及攻击方法:主机发现、端口扫描、信息收集、备份文件、子域名爆破、phpmyadmin、密码爆破、本地文件包含、Capabilities、本地权限漏洞、SSH公钥认证 5)靶机简介:系统运维人员在进行版本更新时,通常会将老版本的文件改名备份一下,以便在出现异常情况时快速回滚。这原本是个好习惯,但如果升级成功后没有及时删除备份文件,则有可能被攻击者所发现,从而泄漏源码和硬编码的机密信息等。本...

  K7lWVooM01S4   2023年11月15日   28   0   0 网络安全

四、基本数据类型和计算(三) 1、枚举变量 1)通过案例体现枚举类型的作用 ​假设要为我们的游戏装备设置稀有度属性,应该如何设计 装备级别 变量名 普通 normal 高级 high 稀有 rare 史诗 epic 传说 legend 神话 myth 不使用枚举变量,使用常量方式设置 include<iostream> defineNormal0//普通装备 defineHigh1//高级装备 defineRare2//稀有装备 defineEpic3//史诗装备 defineLegend4//传说装备 definemyth5//神话装备 ...

  K7lWVooM01S4   2023年11月12日   30   0   0 C++

三、基本数据类型和计算(二) 1、字符 include<iostream> intmain() { std::cout<<65<<std::endl;//65是一个int类型的整数 std::cout<<(char)65<<std::endl;//将其转化为1个字节的char类型字符,编码的正向操作 std::cout<<(int)'A'<<std::endl;//编码的逆向操作,将字符转化为数字 } 1)字符数据原理 内存数据 编码规范 显示 65 ASCII A 原理:在内存...

  K7lWVooM01S4   2023年11月12日   64   0   0 C++
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~