- 博客(380)
- 收藏
- 关注
原创 特殊参数与文件IO
一定要保证文件操作完之后要关闭掉,因为程序能打开的文件数量是有上限的,并且不关闭文件会造成内存泄漏。在字典的前面加上**的作用是将字典中的元素解包成一个一个的不存在的关键字参数传递给函数。优点是,子句体结束后,文件会正确关闭,即便触发异常也可以。使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。关闭文件对象后,再次使用该文件对象将会出现异常。指的是读取整个文件,返回每一行数据的列表。关闭文件,即可释放文件占用的系统资源。可变参数的本质是 将传递的参数包装成了。,用于接收任意数量的参数。
2024-09-27 10:56:04
658
原创 Python之模块、包、异常
除了系统已经定义好的异常,也可以自己定义异常所有的异常都继承自Exception,异常的继承关系如下:class 自定义异常名(Exception):a=int(input("请输入a"))b=int(input("请输入b"))try:print(a/b)raise MyException("抛出了一个自定义异常")print(e)raise的作用是抛出异常抛出异常如果没有通过try except处理,程序会停止。
2024-09-27 10:53:54
774
原创 江科大51单片机
在函数形参括号后加修饰符 interrupt m,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按 51系统中断的处理方式自动把它安排在程序存储器中的相应位置。不过 AUXR 设置定时器时钟那一步是针对最新版本可以调整单片机定时器使能而添加的,我们的单片机加上会报错,需要删掉。SBUF:物理上是接收和发送两个寄存器,实际上共用相同的地址,只是使用时有不同的意义。SM0,SM1:设置工作方式。比如P2^4=1, P2^3=1, P2^2=0, 输入就是110,取反后就是001,就是LED1。
2024-09-20 17:31:15
3111
原创 QString与QByteArray
isNull(和isEmpty()两个函数都判断字符串是否为空,但是稍有差别。如果一个空字符串,只有"\0”,isNull()返回false,而isEmpty()返回true;只有未赋值的字符串,isNull()才返回true。在Qt中QByteArray可以看做是c语言中char类型的动态数组。我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的数据。
2024-08-28 08:44:43
567
1
原创 C++之STL
STL(Standard Template Library,标准模板库)STL的6大组件:容器、算法、迭代器、适配器、仿函数、空间配置容器:存放数据算法:操作数据迭代器:算法 通过迭代器 操作容器适配器:为算法 提供更多的接口仿函数:为算法 提供策略空间配置:为算法、容器提供动态空间算法分类:质变算法、非质变算法质变算法:会更改容器的值(拷贝,替换,删除等等)非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。
2024-08-27 08:57:17
971
原创 类和对象(高级)
char *str;//无参构造//带参构造//深拷贝//析构函数str=NULL;size=0;if(str!return 0;
2024-08-23 10:37:03
427
原创 C++之模版
类模板 将类中类型 抽象成虚拟类型。类模板 实例化对象 不能自动类型推导(重要)private:T1 a;T2 b;public:Data(){cout
2024-08-15 08:45:43
252
原创 C++异常
异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上构造的所有对。象,都会被自动析构。析构的顺序与构造的顺序相反,这一过程称为栈的解旋.异常的接口声明:描述的是 可以抛出哪些类型的异常。自己的异常 一定要从exception上继承。编写字节的异常:基于标准异常。
2024-08-13 08:39:58
218
原创 C++之多态
重载:同一作用域,同名函数,参数的顺序、个数、类型不同 都可以重载。函数的返回值类型不能作为重载条件(函数重载、运算符重载)重定义:有继承,子类 重定义 父类的同名函数(非虚函数), 参数顺序、个数、类型可以不同。子类的同名函数会屏蔽父类的所有同名函数(可以通过作用域解决)重写(覆盖):有继承,子类 重写 父类的虚函数。返回值类型、函数名、参数顺序、个数、类型都必须一致。
2024-08-09 08:43:36
358
原创 C++之继承
其中继承方式有:private protected public(推荐)**public:**可以被任意实体访问**protected:**只允许子类及本类的成员函数访问**private:**只允许本类的成员函数访问公共继承 保持不变,保护继承变保护,私有继承变私有,所有父类私有在子类中不可见。
2024-08-08 08:57:31
420
原创 Python基础
变量是用来描述计算机中的数据存储空间的,我们可以通过变量来保存定义的数据变量名 = 变量值# 定义整型变量age = 30# 定义浮点类型变量# 定义布尔类型变量b = True# 定义字符串类型变量name = '张三'可以通过type()函数获取变量类型name = '张三'# 获取变量类型Python是动态类型语言,变量类型可以通过赋值进行修改# 定义整型变量age = 30# 修改成浮点类型变量age = 70.5列表用[]定义,元素之间用逗号分隔。
2024-08-05 14:10:48
816
原创 类和对象(提高)
7 {8 //类中 默认为私有9 private:10 int a;//不要给类中成员 初始化11 protected://保护12 int b;13 public://公共14 int c;15 //在类的内部 不存在权限之分17 {19 }20 };
2024-07-02 09:09:53
942
原创 汇编基础语法
③除零外,仅有三位数,并且相邻(包括中间有0,例如0x10800000,包括首尾相邻),这三位数中,第一位仅能为1、2、3最低位仅能为4、8、c,中间位0x0~0xf。注意:在对栈操作之前,必须先设置sp的值,进栈和出栈的方式一样,ATPCS标准规定满减栈(从高往低)一个常数,该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到该数,该数位合法立即数。①使用bl指令,因为bl跳转之前,将跳转前的pc的值保存在lr,跳转范围+/-32M。②除零外,仅有二位数,并且相邻(包括首尾)的为合法立即数。
2024-07-01 10:34:20
1016
原创 Linux之网络编程
1、创建套接字参数: @domain 地址族 :AF_UNIX 本地unix域通信 ,AF_INET IPV4 ineter网通信 [我们使用这个]@ type :使用协议类型 SOCK_STREAM 流式套接字(TCP), SOCK_DGRAM 报文套接字(UDP) ,SOCK_RAW 原始套接字: (IP,ICMP)@protocol 协议编号 0 : 让系统自动识别返回值:成功返回得到的文件描述符。失败返回 -1示例用法2、发送数据参数: @sockfd 套接字@buf 数据存放的首地址。
2024-06-14 16:58:11
957
原创 Linux之多线程
联系比较紧密的任务,在并发时,优先现在多线程,任务联系不紧密,比较独立的任务建议选择多进程在 Linux 系统有很多命令可以查看进程,包括 pidstat 、top 、ps ,可以查看进程,也可以查看一个进程下的线程。
2024-05-31 09:31:03
394
原创 Linux之多进程
对于每种信号都有相应的默认处理方式进程退出:进程忽略进程暂停通过signal函数设置信号处理方式函数头文件函数原型函数功能:设置信号的处理方式, 如果是自定义处理方式,提供函数地址,注册到内核中函数参数signum : 信号编号函数返回值成功 : 返回信号处理函数地址失败 : 返回 SIG_ERR , 并设置 errno示例:创建一个子进程, 父进程给子进程发送 SIGUSR1 信号,并使用自定义的处理方式pid_t pid;pid=fork();
2024-05-24 10:19:14
778
原创 Shell脚本
array[0]=1array[2]=2方法1:function 函数名()命令1 命令2 ...方法2:函数名(){命令1 命令2 ...
2024-05-22 08:05:18
521
原创 Linux文件IO
在 Linux 系统下, 用于对文件操作的库函数叫做文件 I/O主要包括 open()/close()/read()/write() /lseek() 相应的系统调用 (准确说法是对系统调用的封装的库函数)文件描述符是一个非负整数, 当打开一个已存在文件或者创建一个新文件时, 内核向进程返回一个文件描述符每个程序运行后, 操作系统会默认打开三个文件 标准输入 标准输出 标准错误输出, 文件描述符分别为 0 , 1 , 2标准输入对应的设备一般为键盘标准输出与标准错误输出设备一般为显示器。
2024-05-16 20:35:51
707
原创 C语言实现各种排序
每次选择一个数组中最大的数或者最小的数与最最后面或最前面的数进行交换。第一个非叶子结点的编号为len/2-1。冒大泡(将大的数往后放)
2024-04-29 08:07:09
329
1
原创 C语言结构体的使用
struct 结构体名{数据类型 变量名1;数据类型 变量名2;数据类型 变量名3;...}变量名列表;例如:struct studentint id;int score;}st,*sp;struct {数据类型 变量名1;数据类型 变量名2;数据类型 变量名3;...}变量名1,变量2,变量3...;注:此种方法,只能在变量名列表的位置定义变量,其他位置不能定义变量。补充:给结构体赋初始值struct {int id;int score;
2024-04-16 11:19:24
598
原创 C语言多文件的使用
int m;int n;return m>n?m:n;return 0;编译编译:gcc calc.c main.c./a.out。
2024-04-16 10:25:05
634
原创 C语言宏定义的使用
特点:宏都是原样替换//M+M*M+Mreturn 0;120//宏定义一个函数,调用两个函数TEST();return 0;改变代码架构,若是存在 if…else 语句调用则会出错。//宏定义一个函数,调用两个函数int n = 0;if(n % 2 == 0) //这没加{}TEST();报错解决方案: s 使用 do…while 语句防止编译出错。注: 宏定义种 do…while 的 while 后面不能加;
2024-04-15 20:38:04
437
原创 指针函数与函数指针
本质:是一个函数,只不过返回值是一个地址。例如:int * fun (int a, int b);(也就是说,指针函数其实和普通的函数一样的,只不过返回值是一个指针类型。并且它必须用同类型的指针变量来接受)design_array函数用来生成一个数组,返回数组首地址,通过地址传参返回数组长度。(这里的design_array被成为指针函数)for_array函数用来遍历数组。
2024-04-15 20:10:12
229
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人