- 博客(27)
- 收藏
- 关注
原创 c语言-指针(二维数组)练习
实际上与普通的遍历出二维数组的方式差不多,只不过写法不一致且有多种,我就不做过多的介绍。利用循环和首地址的联系,将二维数组中的元素遍历出来。
2025-07-04 16:58:16
66
原创 c语言-指针与二维数组
可以看到,父地址,也就是二维数组首个元素的地址,这里输出的是{11,22,33,44}这个元素(子数组)的地址,而由于这个子数组有四个整型数,一个整形数占4个字节,所以这个子数组占16字节,因此每偏移一次就是偏移16个字节,这里第一行输出地址之间差一个F,F是10进制就是代表十进制数16.从上图中可以知道,虽然二维数组(arr)的首地址就等于子数组的首地址也等于子数组(arr[0])第一个元素(arr[0][0])的地址,但是进行地址偏移之后得到的结果是不一样的。首个元素的地址就是数组的首地址。
2025-07-04 16:50:18
280
原创 c语言-指针(数组)练习2
arr[5]={11,22,33,44,55},这个数组中间那个元素是33,对应下标是2,因此只需要 定义一个 i < len/2,j=len-1-i。2.创建三个函数initArr、printArr、revangeArr,它们的形参都需要接收数组的首地址和大小,因此都需要定义两个形参(*pArr、len)。因此,不管奇数还是偶数个元素的数组,利用循环时需要的条件都一致。奇数:奇数个元素的话我们就需要定到中间那个元素,且这个元素不需要交换。
2025-07-04 15:32:11
293
原创 c语言-指针(一维数组)练习1
2.定义两个函数initArr和printArr。initArr主要是初始化数组,将键盘获取的数字遍历保存进数组;printArr主要是将数组中的元素遍历并打印出来。3.形参因为接收数组的首地址因此需要定义成一个指针变量,并且两个函数的形参都是一致的。由于是对数组的地址进行操作,因此不需要返回值即可。1.定义一个数组,将数组的长度通过sizeof关键字计算出来用定义的变量len接收。初始化并遍历打印出数组,要求使用函数封装和指针。
2025-07-04 13:14:15
121
原创 c语言-指针与一维数组
原因就是上一轮循环的指针经过偏移最终停到了下标2也就是对应元素3的地址上,再进行一次同样的循环,那么他就会从元素3的地址继续向后偏移,但是我们这个数组的元素只有1,2,3,就导致它后面并没有地址和对应的元素进行访问。这里可以看到,元素1、元素2、元素3的地址分别是FE0C、FE10、FE14,是连续的,每隔一位差4,对应一个int(4个字节)的大小。可以通过指针偏移的方式来访问数组中下一位元素,因为数组元素内存是连续的,每偏移一位,跨度(增量)都是4个字节。数组名=数组首地址=数组的第一个元素的地址;
2025-07-04 12:57:13
372
原创 c语言-指针练习1
通过前面的学习,我的大致思路就是这样(其实也可以使用数组,将键盘输入的值遍历进数组,再通过函数里方法(比如冒泡或者简单选择排序等)的对数组中的值进行排序,但是这个留在后实现)。第二步:定义一个函数,将abc的地址传递给函数中的形参指针变量,在进行运算,通过值交换进行排序,最后输出这个排序之后的值。题目:键盘输入随机三个数a、b、c,不管怎么·输入,输出时都是从大到小进行排列,用函数封装与指针来完成.思路:第一步先定义三个数a、b、c,再使用scanf获取键盘输入赋值给abc。
2025-07-04 11:32:44
135
原创 c语言-指针
首先:我们知道,一个变量的四个要素(变量名、变量的数据类型、变量的值、内存地址)。根据上面的代码展示,我们清晰的知道了怎么从变量中获取它的值(原样输出)和地址,那么思考一个问题:能不能根据变量的地址来获取变量的值?举个例子:将指针的概念放到实际生活中的游标卡尺,那个位于尺子下方的那个小三角就是指针,尺子上的刻度就是地址,刻度对应的数字就是变量值。总结:我们既可以根据变量名来获取变量值,也可以根据变量的内存地址来获取变量的值。根据地址来访问变量的值,就是指针的操作。初识指针(引入地址的概念)
2025-07-04 08:35:22
291
原创 Mybatis教程
mybatis是一款用于持久层(数据保存到数据库那一层代码即为持久层,javaEE三层:表现层、业务层、持久层,例如springMVC框架就位于表现层)的框架(框架即为半成品软件) ,简化JDBC开发。2、在项目中创建com.mybatisDemo.pojo.User.java实体类,并写出表中对应字段的getter、setter、tostring方法。学习mbatis之前首先你要对java基础、mysql数据库、jdbc、maven、Junit等都有一定的了解。二、Mybatis快速入门。
2025-04-23 17:02:49
393
原创 JavaScript
JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。JavaScript 是用来控制网页行为的,它能使网页可交互;那么它可以做什么呢?如改变页面内容修改指定元素的属性值对表单进行校验等。JavaScript 和 Java 是完全不同的语言,不论是概念还是设计。
2025-04-23 17:02:04
792
原创 数据结构-二叉搜索树与红黑树
eg:这里我们查找下图 值为5的节点,根据二叉搜索树的特点,首先我们要从结点开始,由于5比10小走左边到6的位置,由于5比6小继续走左边到4的位置,而5比4大故走右边,这里就找到5了,这里一共进行了3次对比找到了5。其他节点的查找方法也是这样。删除搜先要从查找操作开始,因为需要查找到目标添加位置,时间复杂度为O(logn),删除完成后,为了保证满足红黑树的特质即规则,故需要进行时间复杂度为O(1)的旋转调整操作。这种情况就从二叉树退化为了链表,而链表的时间复杂度为O(n),故它的时间复杂度也为O(n)。
2024-07-10 12:17:08
637
原创 数据结构-散列表(hash table)
在散列表中,数组每个下标的位置我们称之为桶(bucket)或者槽(slot),每个桶(槽)都对应一个链表,所有的散列值相同的元素都存进相同槽位对应的链表中。当数据量够多,产生了大量的hash冲突,就会将数据挂到同一索引下,导致某一个槽位的链表很长,那么此时散列表就退化成了链表,当再去这个索引下查找元素时,就要遍历链表,所以时间复杂度为O(n)。散列表又叫哈希(hash)表,是根据键(key)直接访问在内存存储位置的值(value)的数据结构,由数组演化而来(根据数组支持按照下标进行随机访问数据的特性)。
2024-07-10 12:09:14
882
原创 MySQL---DQL操作
- 4.查询入学日期在'1998-09-01' 到 '1999-09-01' 之间的学员信息 select * from stu where hire_date BETWEEN '1998-09-01' and '1999-09-01';-- 7. 查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于22岁的学员信息 select * from stu where age = 18 or age = 20 or age = 22;
2024-07-09 09:38:01
979
原创 MySQL---DML操作
语法: -- 更新所有记录的指定字段 update 表名 set 字段名=值,字段名=值,...;-- 更新符合条件记录的指定字段 update 表名 set 字段名=值,字段名=值,... where 条件;语法: -- 删除表中所有记录(表还在) delete from 表名;如果表名后,不定义列名,则默认给所有列添加值 insert into 表名 values(值1,值2,...值n);insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
2024-07-09 09:36:32
424
原创 MySQL---DDL操作数据库与表
- 修改列的类型长度及约束: alter table 表名 modify 列名 类型(长度) 约束;-- 修改列名 alter table 表名 change 旧列名 新列名 类型(长度) 约束;#例如:为分类表的分类名称字段进行更换 更换为 description varchar(30) ALTER TABLE category CHANGE。#例如:为分类表 category 的编码表进行修改,修改成 gbk ALTER TABLE category CHARACTER SET gbk;
2024-07-09 09:34:03
1267
原创 MySQL之初识
简称DDL(Data Definition Language):用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等。
2024-07-09 09:31:58
206
原创 数据结构-链表
链表每一元素成为节点(Node);是一种物理存储单元上非连续、非顺序的数据结构单向链表data是用来存储数据的数据域,next(后继指针)是存储下一个节点地址的指针域。
2024-07-07 21:12:25
740
原创 SQL事务
什么是事务?事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作 作为一个整体一起向系统提交 或 撤销操作请求,即这些操作要么同时成功,要么同时失败。
2024-07-06 18:47:36
578
1
原创 CSS基础教程快速入门
1、介绍:CSS 是一门语言,用于控制网页表现。也有一个专业的名字:Cascading Style Sheet(层叠样式表)。2、作用:2.1 用于美化页面,修饰标签。
2024-05-30 21:09:48
573
原创 HTML简单入门教程
xx教育(股票代码 003032),隶属江苏xx教育科技股份有限公司,注册资本4亿元,是第一个实现A股IPO的教育企业,公司致力于培养高精尖数字化人才,主要培养人工智能、python+大数据开发、智能制造、软件、互联网、区块链等数字化专业人才及数据分析、网络营销、新媒体等数字化应用人才。传智教育希望可以通过自己的努力,寻找出一条更符合人类自然成长规律的教育之路,建立起一个新的教育生态环境,让中国的家长和孩子们在现有的教育体系之外,再多一些选择的机会。标记语言:由标签构建的语言,标签都是预定义好的。
2024-05-29 22:01:22
3339
原创 maven下载安装与配置。基本配置(setting.xml文件、环境变量、idea配置maven)与生命周期(命令)
3.在setting.xml文件中将下面这串代码复制进去,这个是配置的阿里云maven仓库,因为是国内的,所以引用之后下载maven需要的东西会快;若不引用它会默认引用maven官方仓库,由于是国外的,会下载很慢。2.1当我们执行 install(安装)命令时,它会先执行 compile命令,再执行 test 命令,再执行 package 命令,最后执行install命令。4.5.在系统变量那个栏目中,点击新建,将变量名写为MAVEN_HOME,变量值中将刚刚复制的maven安装路径复制进去,再点击确认。
2024-05-24 14:49:31
3574
1
原创 JDBC-API之PreparedStatement
2.1.8我们发现此时sql语句的含义变了or变成了sql语句中的判断含义的关键字了,and这里的条件虽然比or先执行,但是and那里的执行结果为false,而or后面的结果是true,从而导致where整个条件结果都为true,此时谁都可以随便登录成功进行任何操作了。2.1.1. 数据库中存在一个user表,内容有:id=1,username=‘张三’,password=‘123’;==注意:== 调用这两个方法时不需要传递SQL语句,因为获取SQL语 句执行对象时已经对SQL语句进行预编译了。
2024-05-23 11:08:39
1552
1
原创 java: 错误: 不支持发行版本 20
1.第一步点击file弹出下拉列表中project structure,点击project,看里面的sdk版本与language level是否一致。1.1.由于我这里sdk用的是17版本的,与language level 20不一致,故报错了。一般来说有这个报错的原因是因为项目使用的Java版本和安装的Java版本不符合。1.2.这是我修改之后。修改完之后就能成功运行啦。
2024-05-22 20:22:47
1262
1
原创 java如何实现JDBC连接数据库,循环遍历表中内容并实现存进ArrayList集合中?
2.1.jdbc操作数据库七步曲搭好壳子(我自己随便说的七步曲:注册驱动、获取连接、定义sql、获取statement对象、执行sql、获取返回值、 释放资源)2.5.利用add()方法将对象存进集合中: list.add(account);//6.2 获取数据 getXxx()//4. 获取statement对象。//3. 定义sql。//5. 执行sql。
2024-05-22 11:56:18
426
1
原创 JDBC-API之ResulteSet
而执行了DQL语句后就会返回该对象,对应执行DQL语句的方法如 下: ResultSet executeQuery(sql):执行DQL 语句,返回 ResultSet 对象 那么我们就需要从 ResultSet 对象中获取我们想要的数据。String getString(参 数) 参数 int类型的参数:列的编号,从1开始 String类型的参数: 列的名称。//6.2 获取数据 getXxx() 注:这里的Xxx需要对应你的数据库表中字段的类型要一致。//6. 处理结果, 遍历rs中的所有数据。
2024-05-22 11:20:48
349
原创 JDBC-API之Statement
Statement接口是JDBC中执行SQL语句的关键接口之一。通过创建Statement对象,我们可以执行各种对数据库的操作。但为了提高安全性,执行SQL语句时使用PreparedStatement防止sql注入,尤其是涉及用户输入的情况下。Statement接口是JDBC的一部分,允许我们向数据库发送SQL查询和更新语句,并从数据库中获取结果。PreparedStatement:用于执行预编译的SQL语句,可以带有参数,防止SQL注入攻击。Statement:用于执行普通的SQL语句,不带有参数。
2024-05-22 10:56:23
305
原创 jdbc连接mysql基本示例
但是接口需要实现类,而JDBC并没有提供实现类,所以就需要导入一个驱动jar包(mysql- connector.jar),这个驱动实际上就包含需要的实现类在里面(这些实现类实际上是由对应的数据库公司实现并提供的)。由于导入的mysql驱动里面driver实现类里面的静态方法提供了注册驱动的功能,运行程序时它会自动加载,自动注册,所以这一句也可以省略不写。(如果你是链接的本机127.0.0.1:3306,可以简写成jdbc:mysql:///数据库名称;string sql=“你需要执行的sql语句”;
2024-05-21 23:57:40
240
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人