编程
文章平均质量分 67
编程学习记录
HHFQ
这个作者很懒,什么都没留下…
展开
-
区分堆溢出和栈溢出的方法
在 C 语言中,区分堆溢出(Heap Overflow)和栈溢出(Stack Overflow)通常依赖于理解它们的特性和行为。原创 2024-08-18 11:27:54 · 494 阅读 · 0 评论 -
狄克斯特拉算法
狄克斯特拉算法(Dijkstra’s algorithm)是一种用于在带权图中找到从单一源点到所有其他顶点的最短路径的算法。它适用于处理带有非负权值的图。下面将详细解释算法的工作原理、时间复杂度以及如何通过优化数据结构来改进其性能。原创 2024-06-30 18:23:01 · 669 阅读 · 0 评论 -
理解堆排序
在堆排序的过程中,虽然我们使用了堆这种数据结构,但实际上,所有的操作都是在数组内部进行的。通过交换数组中的元素,我们在数组上模拟了堆的插入、删除和调整操作。这样,我们可以利用数组的连续内存空间和高效的索引访问特点,同时享受堆数据结构带来的排序优势。原创 2024-06-23 13:09:56 · 654 阅读 · 0 评论 -
__attribute__((constructor))、 __attribute__((destructor))
GNU C 的一大特色就是机制。可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的参数。转载 2024-06-10 11:50:02 · 105 阅读 · 0 评论 -
C语言和BASH SHELL中条件表达式的真假与0和1的关系
因此,在C语言中,通常使用0表示假,而使用1(或任何非零值)表示真。这是C语言中布尔类型的基础,以及条件语句(如if语句)和循环语句(如while和for循环)的基础。这意味着在Bash shell中,通常使用0表示真,而使用非零值表示假。这是Bash shell中条件语句(如if语句)和循环语句(如while和for循环)的基础。因此,在Bash shell中,非零退出状态码表示条件为假,而退出状态码为0表示条件为真。这与C语言中的逻辑相反。原创 2024-05-12 15:49:09 · 308 阅读 · 0 评论 -
EOF是什么?
Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);这个问题让我想了很久,后来查了资料才知道,**在Linux系统之中,EOF根本不是一个字符,而是当系统读取到文件结尾,所返回的一个信号值(也就是-1)。很自然地,我就以为,每个文件的结尾处,有一个叫做EOF的特殊字符,读取到这个字符,操作系统就认为文件结束了。比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。转载 2023-04-30 17:47:39 · 221 阅读 · 0 评论 -
编程时要显式使用IBM PC上的内存地址时,需要编译器以long类型储存一个小数字原因
如果您想使用一个小数字表示内存地址,例如4096或10000,您必须将其转换为16位无符号整数。但是,如果您计算出的16位整数大于32767(2的15次方减1),则它将被解释为负数。为了确保可以正确地使用16位内存地址,您需要使用32位整型变量(即long类型),该变量可以表示超过32,000个不同的值。通过使用long类型,您可以将程序中的小数字视为16位无符号整数,并且可以避免由于内存地址的溢出而导致的错误。虽然long数据类型使用更多的内存,但这是值得付出的代价,可以提高代码的可靠性和健壮性。原创 2023-04-22 09:47:39 · 154 阅读 · 0 评论 -
go get命令——一键获取代码、编译并安装
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。这个命令可以动态获取远程代码包,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。在使用 go get 命令前,需要安装与远程包匹配的代码管理工具,如 Git、SVN、HG 等,参数中需要提供一个包名。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install。转载 2023-03-18 19:32:34 · 1276 阅读 · 0 评论 -
godoc使用方法介绍
Godoc是go语言的文档化工具,类似于文档化工具godoc,类似于Python的Docstring和Java的JavadocGodoc通过解析包含注释的Go代码来生成HTML或文本类型的文档。转载 2023-03-21 22:49:40 · 456 阅读 · 0 评论 -
介绍Go竞争检测器
原文连接介绍:竞争条件是最狡诈的、最难以找到的编程错误。通常,在代码被布置到生产环境很久以后,它们才会出现并且造成奇怪的、神秘的错误。尽管Go语言的并发机制使得更容易的编写出干净的并发代码,依然无法避免竞争条件的出现。小心、勤勉以及测试是必须的。工具也可以提供帮助。我们很高兴的宣布Go1.1包含了一个竞争检测器,一个全新的工具,用于在Go代码中找到竞争条件。该工具当前在Linux,OS X 和Windows平台可用,只要CPU是64位的x86架构。转载 2022-11-06 17:22:24 · 471 阅读 · 0 评论 -
golang 中 recover()的使用方法
通常来说,不应该对进入 panic 宕机的程序做任何处理,但有时,需要我们可以从宕机中恢复,至少我们可以在程序崩溃前,做一些操作,举个例子,当 web 服务器遇到不可预料的严重问题时,在崩溃前应该将所有的连接关闭,如果不做任何处理,会使得客户端一直处于等待状态,如果 web 服务器还在开发阶段,服务器甚至可以将异常信息反馈到客户端,帮助调试。)当程序遇到panic的时候(当然,也可以正常的调用出现的异常情况),系统将跳过后面的代码,进入defer,如果defer函数中。,则返回捕获到的panic的值。转载 2022-10-30 10:07:22 · 2410 阅读 · 0 评论 -
如何使用 Go 语言中的类型断言?
和上面一样,这个表达式也是可以断言一个接口对象(i)里不是 nil,并且接口对象(i)存储的值的类型是 T,如果断言成功,就会返回其类型给 t,并且此时 ok 的值 为 true,表示断言成功。如果接口值的类型,并不是我们所断言的 T,就会断言失败,但和第一种表达式不同的事,这个不会触发 panic,而是将 ok 的值设为 false ,表示断言失败,此时t 为 T 的零值。之前并不是有没有输出任何 t2 的值,而是由于断言失败,所以 t2 得到的是 string 的零值也是。稍微修改下上面的例子,如下。转载 2022-10-29 22:19:26 · 244 阅读 · 0 评论 -
Go 语言中的一等函数
支持一等函数的编程语言允许将函数赋值给变量、作为参数传递给其它函数及从其他函数返回。 Go 支持一等函数。我们将讨论一等函数的语法和各种用例。让我们从一个将函数分配给变量的简单示例开始。在上面的程序中,在第8行中为变量赋值了一个函数。这是将函数赋值给变量的语法。如果仔细注意,被赋值给的函数没有名称。这些类型的函数称为匿名函数,因为它们没有名称。调用此函数的唯一方法是使用变量 。已经在下一行完成了这项工作。a() 调用该函数,这将打印 。 在第12行 我们变量 的类型。 这将打印 。运行此程序将打印也可翻译 2022-06-18 21:12:11 · 195 阅读 · 0 评论 -
Golang的字面量
boolint8,uint8,int16,uint16,int32,uint32,int64,uint64,int,uint和uintptrfloat32和float64complex64和complex128string而这些基本类型值的文本,就是基本类型字面量。比如下面这两个字符串,都是字符串字面量,没有用变量名或者常量名来指向这两个字面量,因此也称之为未命名常量。"hello, iswbm" `hello,iswbm` 复制代码。转载 2022-10-05 20:30:58 · 232 阅读 · 0 评论 -
Python之JSON库的使用(二)
Python之JSON库的使用通过脚本抓取拉勾网某职位的数据,获取公司名称和最高薪资的信息,最后通过pyecharts实现可视化。主体脚本:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""File Name: lagou.pyTime : 2019/7/14 20:03IDE :PyCharmAuthor :A...原创 2019-07-15 20:14:47 · 5911 阅读 · 0 评论 -
Python之JSON库的使用(一)
Python中数据的序列化与反序列化(JSON库的应用)参考书籍《Python自动化测试实战》无涯著Pyton中序列化指的是将Python中的数据结构(列表、元组、字典)编码转换为JSON格式的字符串;而反序列化指的是将JSON格式的字符串编码转换为Python中的数据结构(列表、元组、字典);注意:元组经过序列化处理后,再通过反序列化处理后,数据类型不再是元组(而是列表);但列表、字典经过...原创 2019-07-14 18:19:41 · 659 阅读 · 0 评论 -
八皇后问题的一种python解法
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种方法可以解决此问题。回溯算法的...原创 2018-09-25 22:02:31 · 664 阅读 · 0 评论 -
斐波那契数列的Python实现
斐波那契数列的Python实现:#!/usr/bin/env python3# -*- coding: utf-8 -*-"""File Name: fibs.pyTime : 2018/9/19 23:15IDE :PyCharmAuthor :Administrator""&原创 2018-09-19 23:49:59 · 458 阅读 · 0 评论