VS studio2019配置远程连接Ubuntu (1)获取主机IP(2)获取Ubuntu的IP(3)在windows的控制台中ping虚拟机的ipv4地址,在Ubuntu中ping主机的ipv4地址。(4)在两边都ping通之后才能进行下面的操作。如果两个ip 不在同一个网段,则需要通过主机IP信息,去Ubuntu配置一条新的网段信息,并启用。
返回值返回引用返回指针之间的区别 (1)适用场景返回值:适用于基本数据类型或小对象 ,不需要考虑性能问题。或需要使用临时对象的场景。返回引用:适用于较大的对象 ,需要考虑性能问题的场景。返回指针:适用于动态分配内存或指针灵活指向的场景。(2)注意事项返回局部对象或局部变量时:局部变量和局部对象在使用后会被销毁 ,返回它们的引用会产生悬挂引用或悬挂指针。使用这些引用会产生未定义行为。内存管理: 对于函数内部手动分配的内存 ,在适当的时候需要进行销毁 ,以避免内存泄漏。不能返回指向已经被销毁的内存空间的指针。
C/C++混合编译 这两个函数名看是经过了C++的名称修饰(name mangling),因为在C++中,函数重载会导致相同的函数名被修改以包含参数类型信息,以用来区分同名函数。**总的来说:**使用混合编程和动态链接库的方式能够充分发挥 C 和 C++ 语言的优势,提高项目的效率、可维护性和可扩展性,是现代软件开发中常见的实践之一。:使用动态链接库的方式可以实现 C 和 C++ 之间的互操作,因为动态链接库中的函数可以以 C 的方式进行链接,并且可以在 C++ 中调用。文件中包含了编译后的目标代码,其中包括了函数的实现。
进程间通信方式--共享内存 (1)进程间通信方式之一,若干个进程可以共享一段内存,这段内存 称之为"共享内存"。(2)这种方式,会比其它 IPC 方式(fifo pipe messages)少一次 copy 内存,共享内存的效率会高很多。(3)共享内存在内核中创建,随内核持续性!
进程间通信方式--信号(signal) (1)定义信号量(2)定义信号处理函数(3)注册信号(4)发送信号函数原型:参数:@signum: 要设置处理函数的信号编号@handler:指向处理函数的指针。可以是一个自定义的函数,也可以是系统提供的预定义处理函数。返回值:无返回值注意:(1)关于参数函数指针的参数:调用 signal() 函数将自定义信号 MY_SIGNAL 与信号处理函数 signal_handler 关联起来。
进程间通信-有名管道 ②在收到 over 结束指令时,需要在break前输出一个换行,或者先关闭管道文件,在break。fifo 是在 pipe(无名管道) 的基础上,给 pipe 在文件系统中创建了一个 i-node(文件名)。但是 fifo 的文件内容仍然是保存在内核中。①fifo是有 i-node的,所以可以使用多个进程来读写文件!fifo 和 pipe 是一样的,区别就是 fifo 在文件系统中有一个名字。使用 fifo 需要操作 fifo 文件。也就是必须有一个管道文件。②fifo 文件内容随内核持续性。
进程间通信-管道通信-无名管道(pipe) Linux中 inode 用于唯一标识一个文件,而无名管道(pipe)在系统中是没有名字的,也就是没有(inode),它的内容直接保存在操作系统的内核中。无名管道可以通过系统 API 提供的 IO 函数进行操作,但是不能使用 open/close 函数进行打开或者关闭。无名管道使用 read/write 进行读写,但是 使用 read/write 必须得有一个文件描述符。所以,使用无名管道 pipe 时,就必须先创建 文件描述符。
数据结构--(栈)总结 注:判空时需要先判断头节点是否存在,即:判断头节点是否为空,再判断是否有元素。注:元素入栈前,需要先判空,再判断栈是否已经满了,不能颠倒顺序,栈空时可能造成使用空指针的情况。都是 "越界" 的情况,不考虑。新的数据会覆盖老的数据,不会造成影响。注:代码使用的是带头节点的双向链表模型作为栈。在堆区创建的,需要手动释放,并且先与。已经被置空,造成空指针引用,引发段错误。注:栈是先进后出的线性结构,这里通过。会造成空指针的引用,引发段错误。,代码中,数组采用的是。类型的指针,指向一块通过。所以元素的个数需要在。
数据结构(链表)-总结 这篇文章以及代码都是在某培训机构学完数据结构之后,自己根据课程重新写了一点代码总结。文章和代码中如有谬误,敬请指出!1.简化定义语句,提高可读性在使用 typedef后,结构体变量的定义由原先的简化为,尤其在结构体名字较长时,可以使代码更为简洁,提高可读性。2.增强代码的可维护性和复用性通过使用 typedef定义数据类型的别名,代码在变更数据类型时变得更具灵活性。例如,若需将数据域的类型修改为 char,使用 typedef。
力扣 反转字符串 II 1.根据题目要求,每次需要反转前 K 个字符;2.结束时需要判断剩余字符个数是否大于 K 个,若大于 K 则反转前 K 个字符,若小于 K 则反转剩余的所有字符3.根据题目要求,我们需要不断地反转字符串,进行重复的操作,所以首先想到使用循环解决问题4.先进行一次字符串反转,再推到整个循环的开始结束条件.5.由于需要进行字符串反转,而且是在字符串内部进行反转,所以需要反转的位置,从哪里开始,从哪里结束。因此,使用到双指针的思想。
单链表的反转 3.使用头插法的思想,定义两个指针 pre 和 cur 用pre 指向新链表的第一个节点,用cur指向旧链表的第一个节点,将每次拿出来的节点插到第一个节点的位置。1.链表的反转需要将链表翻转过来,意思是:将最后一个节点作为首节点,将倒数第二个节点作为第二个节点,将倒数第三个节点作为第三个节点……2.思路:遍历链表,每遍历一个节点,就将这个节点拿出来,组成一个新链表。