指针参数的DEMO include<stdio.h> voidhex_printf(charbuf,intbuf_len) { inti=0; if(NULLbuf) { return; } printf("lenis:%d\n",buf_len); printf("str_arrayis:%s\n",buf); for(i=0;i<buf_len;i) { printf("0x%02x\n",buf[i]); } printf("\n"); } intmain() { chardata[]="test"; intdataSize=4; hex_printf(data,d...

  rdhKpTTHdgkg   2023年11月02日   56   0   0 C++

Convention 口=1Byte,用于具象化,方便眼睛对比长度; void=空类型; C语言中,short、long、singned、unsigned都为说明符,可以改变标识符存储大小; C语言中,在声明整型变量时,如果声明中已经有一个其他的(同等)说明符,那么关键字int可以省略; C语言中,默认使用有符号(singned); C语言中,浮点数据类型没有无符号分类,都可以存储正数和负数; C 大脉络 大概知道即可,不要刻意去记忆。 在C语言中,仅有4种基本数据类型: 整型+-N int(这里比较绕,但是记住int是主要标识,还有4个说明符用来标记大小) signed(def...

  rdhKpTTHdgkg   2023年11月02日   35   0   0 C++

Leadinto 指针其实跟一些运算符的表达式类似(例如i,i--),它通过符号隐藏了内部的计算过程,只要学习者逐步的分解开,就很容易理解了。学习指针的时候,尽量想象底层硬件的工作方式,也能有助理解。 为什么会觉得指针难?因为指针在现在的高级语言上基本不使用了,不使用的东西就会觉得很遥远、很神秘且难。但是只要你经常使用C语言编程,你就不会觉得难。 Target 理解指针的相关概念 清楚理解值传递和引用传递的区别 什么场景下需要用到指针? 引用传递 早期的计算机硬件,为什么需要指针这种语法? 理解指针变量、指针函数、指针参数 Concept 指针类型的声明 chara; charb="B...

  rdhKpTTHdgkg   2023年11月02日   30   0   0 C++

Problemdescription unsignedcharkey[16]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}; unsignedcharin[16]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01}; unsignedcharout[16]; intoutlen; intret; ret=aes_decrypt_ecb(key,sizeof(key...

  rdhKpTTHdgkg   2023年11月02日   62   0   0 C++

WhayneedtheCMake? 如果只是构建一个只有一个main.cpp的小型项目,那么确实不需要CMake,直接GCC、G编译,或者写个build.sh脚本即可,不需要把简单的问题搞复杂化。 $gmain.cpp-ocmake_hello 但是如果你的项目分了很多模块,导入了很第三方源码、库文件等,那么编译也是个复杂问题,之前的先驱们为了将编译这一复杂过程封装起来,就发明了Makefile,过了一段时间,人们觉得Makefile还是过于复杂,又在基于Makeile的基础上又封装出了CMake,这下现在的人就能使用几条简单的语法就能编译一个复杂工程了。 MygoalofusingCMak...

  rdhKpTTHdgkg   2023年11月02日   52   0   0 C++

Whatisstaticanddynamiclibraries 他们有什么相同点吗?都是库文件。对于调用库文件的使用者来说,不管是静态库还是动态库,调用的方式都是一样的,没什么区别。 Differencesbetweenstaticanddynamiclibraries 动态库和静态库的区别在于编译阶段的不同, 静态库编译的时候,会把导入的第三方库文件一起打包成一个静态库。 动态库编译的时候,只把需要导入的第三方库文件的链接信息记录下来,真实的库和代码不会包含在执行文件里,使用这种方式生成一个动态库。调用者在使用的时候,去请求动态库里面的函数的时候,如果需要调用第三方库文件,就是根据打包时记...

  rdhKpTTHdgkg   2023年11月02日   31   0   0 C++

Introduce 之前在虚拟机、远程的服务器,如果因为一些硬性限制,但又想传输的文件的时候,没有太好的办法的时候,系统如果默认安装了Python3,可以使用python自带的server服务来进行文件传输, //python2.X temp$python-mSimpleHTTPServer2020 //python3.X temp$python-mhttp.server3030 但是,有个缺点,就是他只能单向传输,就是你只能从服务器上拉取文件回来,不能传输文件到服务器,基于这个需求,有了下文的解决方案。 Solved //install,如果不能上网,可以先将代码下载到本地,然后在传输到...

  rdhKpTTHdgkg   2023年11月02日   75   0   0 Python

WhatisPolymorphism 这个多态看中文确实有点费解,多态的英文是Polymorphism,它的翻译含义是:n.多态性(可以看出是比较宽泛的)n.多型现象 从翻译也看不出啥,我举一个生活中的例子来引入多态:生活中有很多常见的物体具有多态性。例如,一张纸可以用来写字、画画,也可以用来包裹东西,还可以折成纸飞机等,纸你可以抽取出来,当成一个最基本的物质原料, 纸在学习场景下,需要变成学习材料,用来写字; 纸在实用场景下,需要变成工具材料,用来包裹东西; 纸在娱乐场景下,需要变成学习材料,用来当成娱乐工具; 看完纸的案例,相信你能有启发。 Definde Polymorphismre...

  rdhKpTTHdgkg   2023年11月01日   65   0   0 Java

策略模式很类似现在多功能的洗衣机,每次在洗衣服之前,都需要由用户自己选择想要的洗衣策略,洗衣机收到指定的洗衣策略后,组合成一份新的算法和数据结构才去执行。 StrategyPatternandStatePattern 策略模式和状态模式的区别在于使用者对它们的目的。策略模式主要用于实现算法的选择和动态切换,强调的是不同策略的独立性和替换性。状态模式主要用于根据对象的内部状态来改变对象的行为,强调的是对象状态的变化和相应行为的变化。 但其实,你把这个状态想成策略,策略替换成状态,也没啥区别。 StrategyPatternandPolymorphism 策略模式和多态在使用场景上,还是很类似的。...

  rdhKpTTHdgkg   2023年11月01日   84   0   0 Java

Thedifferencebeteentwoway 总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么? 继承Thread类:通过继承Thread类,你可以创建一个直接表示线程的类。你可以覆盖Thread类中的run方法来定义线程的逻辑。当调用start方法启动线程时,会执行该类中的run方法。优点:简单直观,可以直接访问线程的方法和属性。缺点:由于Java不支持多重继承,因此如果你的类已经继承了其他类,就无法再继承Thread类。此外,由于继承是一种静态的方式,它限制了类的扩展性。 实现Runnable接口:通过实现Runnable...

  rdhKpTTHdgkg   2023年11月01日   47   0   0 Java

工厂方法模式是比较有启发的一个模式,它告诉我们可以通过增加新的对象专门管理“变化”。例如,我们为了解决new()引起的“变化”,就引入了工厂类型,由新增的工厂类型专门处理new()相关的“变化”,确保客户程序不受这些变化的直接影响。这个其实就是很典型的计算机编程思维,计算机科学中的大部分问题都可以用一间接层来解决。 虽然在某些情况下,引入一个中间层可以简化问题或提供更高层次的抽象,但并不是所有问题都适合这种方法。有些问题,引入额外的间接层可能会增加复杂性和开销,而不一定带来实际的好处。此外,某些问题可能具有固有的复杂性,不容易通过简单的间接层来解决。总的来说,并非所有问题都可以通过引入一层间接...

  rdhKpTTHdgkg   2023年11月01日   57   0   0 Java

Backgroundknowledge 在Java中,Cloneable接口是一个标记接口(MarkerInterface,它们内部都没有方法和属性),实现Cloneable接口表示该对象能被克隆,能使用Object.clone()方法。 要实现克隆功能,需要满足以下两个条件: 类实现了Cloneable接口。 在类中重写clone()方法。 WhatisPrototypePattern 为了方便记忆,原型模式也叫克隆模式,我说的! 原型模式通过复制现有对象来创建新对象,而无需显式地使用构造函数。原型模式允许动态创建对象,并且可以避免创建子类的复杂性。原型模式可以结合其他设计模式使用,例如...

  rdhKpTTHdgkg   2023年11月01日   43   0   0 Java

Core 建造者模式又称为生成器模式,主要用于对复杂对象的构建、初始化,它可以将多个简单的组件对象按顺序一步步组装起来,最终构建成一个复杂的成品对象。 与工厂系列模式不同的是,建造者模式的主要目的在于把烦琐的构建过程从不同对象中抽离出来,使其脱离并独立于产品类与工厂类,最终实现用同一套标准的制造工序能够产出不同的产品。 Keyelements 抽象建造者interface 产品 具体建造者A 具体建造者B 具体管理者(也叫监督者)生产产品[可选] Client ExampleofHousebuilding 使用房屋建造这个场景来讲述BuilderPattern真是再合适不过了,毕竟我是学过...

  rdhKpTTHdgkg   2023年11月01日   36   0   0 Java

程序设计领域的设计模式的六大设计原则+合成复用原则(CompositeReusePrinciple),都是一些很泛的思想(它们既可以指这个,也可以代指那个),无法生搬硬套,无法做到很具体的指导,我的建议是,有空多看几遍、多思考看看怎么能运用在实际项目中,在未来时保佑自己在设计程序时能联想到即可。 矛盾性的思考:有时在面对一个复杂需求时,可能会面临满足了这个原则就会矛盾另一个原则的情况,这种就得做必要的取舍。 关于记忆的一些个人见解:设计模式、设计原则...,我觉得都是不要去记忆它,而是通过你工作中的项目代码、网上好的项目代码,去做归纳总结、去发现一些特征。自己不断的总结提炼,我觉得这样才会形成...

  rdhKpTTHdgkg   2023年11月01日   72   0   0 Java

享元模式在主流的标准里是放到结构大类下的,但是我感觉这个模式的最终作用也是为了获取一个类,所以我将其划分到创建大类下。 WhatisFlyweightPattern Flyweight是指轻量级的。 享元模式旨在支持大量细粒度的对象共享,以减少内存消耗。该模式通过共享相似对象的部分状态,来减少对象的数量。通过共享,可以节省内存并提高系统的性能。 享元模式通常涉及两个关键概念: 内部状态(IntrinsicState)内部状态是可以共享的部分,存储在享元对象内部; 外部状态(ExtrinsicState)外部状态是不可共享的部分,需要在使用时提供。 通过将内部状态与外部状态分离,可以实现对象...

  rdhKpTTHdgkg   2023年11月01日   52   0   0 Java

HookMethod 钩子方法(HookMethod)之所以被称为“钩子”,是因为它在算法或流程中提供了一个“钩子”,允许子类在特定的点上“钩入”自己的实现逻辑,从而影响算法的行为或流程的执行。 它类似于一个挂钩、锚点,所以叫Hookmethod,它允许子类插入自定义的代码来改变或扩展算法的功能。 Templatepattern的实现就必须用到Hookmethod。HookMethod一般在抽象类中被定义,但默认情况下没有实现或者提供一个空实现。钩子方法的作用是允许具体子类有选择地覆盖或扩展算法的某些步骤。 WhatisTemplate 模板模式(TemplatePattern)是一种行为设计...

  rdhKpTTHdgkg   2023年11月01日   53   0   0 Java

WhatisBridgePattern 桥接模式(BridgePattern),旨在将抽象部分和实现部分解耦,使它们可以独立地变化。该模式通过将抽象和实现分离,使它们可以独立地进行扩展和修改,同时通过桥接(Bridge)将它们连接起来。 将一个事物原本耦合在一起的东西,通过定义成抽象和实现两个维度,做到解耦,解耦就是为了能组成更多的组合。 怎么划分抽象和现实?在桥接模式中,抽象部分和实现部分是两个相对的概念,只是用于表示系统中的两个不同维度或变化的方向,谁是抽象、谁是具体并不是很重要,重要的是解耦出两个维度就行。 抽象部分(Abstraction)表示高层的抽象接口或类,它定义了对外的接口方...

  rdhKpTTHdgkg   2023年11月01日   27   0   0 Java

网上查到的设计模式有23种,通过归纳去认识他们也是一种不错的视角。 我这边不按照主流的观点去划分为创建型、结构型、行为型三大类,我只归纳为创建型(CreationalClass)、简单功能场景(SimpleMethodClass)、复杂功能场景(ComplexMethodClass)三大类。原因是结构、行为这种词本身就比较泛,而模式本身就是一种比较交叉融合的状态,所以根据我的理解,我主观性的重新划分,当然只是为了让我理解和思考。 其实程序设计模式里,大多数的考虑初衷都是为了面向未来未知情况,在当前就先规划做好扩展方式,方便能让未来使用者使用方便的代码结构。也有能节省资源的设计模式、方便解耦的设...

  rdhKpTTHdgkg   2023年11月01日   70   0   0 Java

Itcanexplainwhat? 如下是解释器要解释的主体: 加减乘除等运算,3+4/9+68 摩尔斯电码 正则表达式 El表达式 OGNL表达式 小明是北京人 小红是一名售货员 部门领导下发一则通知 ... Howexplain? 解释器模式常用于对简单语言集的编译或分析,例如: 我是大学生 张强学习编程 小明是北京人 部门领导下发一则通知 为了掌握好它的结构与实现,需要先了解编译原理中的文法、句子、语法树等相关概念。(其实不了解也行,可以直接看code,在回来看) 这里提到的文法和句子的概念同编译原理中的描述相同, 文法指语言的语法规则如何解释语言的规则 句子是语言集中的元素例...

  rdhKpTTHdgkg   2023年11月01日   40   0   0 Java

光看访客这个名字,猜测这个访客模式应该非常好理解,只要玩过Linux的人,都能深刻明白Root和非Root和访客账号登录的巨大差别性。 WhatisVisitor? 如果你没玩过Linux,那么假设公共的图书馆有一台电脑,有两个账户: 其中一个是管理员(Admin)的账户,拥有这个电脑的所有权限,但是设置了密码,必须是管理员(她有密码)才能登录; 另一个账户是不需要密码,但是只能玩游戏和看电子书,拥有的权限有限。张三和李四先后使用了这台电脑,那么他们就可以当作是访问者(Visitor)。 注意:访客模式不是就是一种权限控制手段,访问者模式用于在不修改现有对象结构的情况下,定义对对象结构中各...

  rdhKpTTHdgkg   2023年11月01日   67   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~