- 博客(43)
- 收藏
- 关注
原创 指针变量和指针变量作为函数参数
该运算符后只能跟指针变量或变量地址,取指针变量所指向单元的内容。例如:&a表示变量a的地址,*p表示指针变量p指向的变量。指针变量没有指向确定地址前,不能对它所指的对象赋值。指针运算符(间接访问运算符);例:int *p1,*p2;指针:一个变量的地址。
2026-10-28 14:17:53
166
原创 c语言变量的存储类别
一般情况下,变量的值都是存储在内存中的。为提高执行效率,C语言允许将局部变量的值存放到寄存器中,这种变量就称为寄存器变量。在函数中定义的自动变量,只在该函数内有效;当需要保留函数上一次调用结束时的值或者变量只被引用而不改变其值时,才使用静态变量。外部变量属于静态存储方式。定义静态变量但不初始化,则自动赋以0(整型和实型)或'\0'(字符型)(2)允许使用的寄存器数目是有限的,不能定义任意多个寄存器变量。(1)只有局部变量才能定义成寄存器变量,即全局变量不行。换句话说,在程序执行期间,静态变量始终存在。
2026-10-14 14:43:49
244
原创 c语言递归调用
当遇到递归结束条件时,递归程序将逐层往回返,直到递归调用结束。函数递归调用实质上是函数嵌套调用的一种特例,当遇到递归结束条件时,递归程序将逐层返回。
2026-09-18 14:26:42
186
原创 c语言函数调用
2.函数调用开始,为形参分配存储单元;函数调用结束,释放形参所占的存储单元。单向值传递,即实参值依次对应地传递给形参,但形参不能反传给实参。4.形参与实参的类型要一致,否则按赋值规则进行转换。函数调用时,将数据的存储地址作为参数传递给形参。实参可以是常量、变量和表达式。每个形参前面必须有类型,实参前面不能有类型。形参与实参的注意事项。
2026-09-16 11:51:07
127
原创 字符串处理函数
初始 i=3(指向 str1 的结束符位置),第一次循环将 str2[0]='d' 写入 str1[3],覆盖原来的 '\0';· 这一行将 str1[3] 设为字符串结束符 '\0',于是 str1 的有效内容变为 "abc",后面的字符(包括原 "hello" 剩余部分)被截断,不再输出。· 循环结束后,str1 的前 3 个字符变为 "abc",而 str1[3] 仍然是原来的 'l'(原 "hello" 的第 4 个字符),但下一步会修改。= '\0' —— str2 还没结束。
2026-09-09 15:08:26
171
原创 二维数组的应用
内层循环结束后,a[4][3] += a[i][3] 将刚计算出的行和累加到 a[4][3],循环结束后 a[4][3] 就是所有元素的总和。每读入一个数,立刻加到 a[i][3] 上。当内层循环结束后,a[i][3] 就存储了第 i 行的行和。b 是 5×4 的二维数组,用于存储转置后的矩阵(行数变为5,列数变为4)。例:将二维数组行列元素互换,存到另一个数组中。a 是 4×5 的二维数组,存储原始矩阵。例:求二维数组中最大元素值及其行列号。i, j 作为循环计数器。
2026-07-25 23:28:24
201
原创 c语言二维数组
行数 列数。例:int a[2][3]={{1,2,3},{4,5,6}};例:int a[2][3]={1,2,3,4,5,6};例:int a[2][3]={{1,2},{4}};例:int a[][3]={{1},{4,5}};例:int a[2][3]={1,2,4};等价于int a[2][3]={{1,2。例:int a[3][4];元素个数=行数*列数。第一维长度省略初始化。按元素排列顺序初始化。
2026-07-19 23:37:10
225
原创 c语言一维数组的应用
思路:先把最大值和最小值都赋值给第一个数,再从第二个数开始循环比较,当max的值x[0]小于x[i]时,把x[i]的值赋值给max,min同理。思路:先赋值前两个已确定的数1 1,从第三个数(数组索引第二个数)开始遍历,最后依次输出元素。t: 临时变量(temp),在交换两个数字的位置时作为“中转站”。
2026-06-05 16:20:43
181
原创 c语言一维数组
下标可以用整型常量、(整型变量或者整型表达式,其范围从0开始,小于等于“(当对一个一维数组的所有元素全部赋值时,可以省略[]中的元素个数不写)int a[6]={10,20,30};(默认未赋值部分补0)数组必须先定义后使用。数据类型 数组名 [元素个数];三.一维数组元素的引用。二.一维数组的初始化。
2026-05-29 14:24:20
39
原创 c语言(选择与循环)程序与算法
算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得到相同的输出。一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。算法中的每一个步骤都应该能有效地执行,并能得到确定的结果。一个算法有零个或多个输入,这些输入取自某个特定的对象集合。3.循环体可能一次都不被执行的是。2.循环体至少被执行一次的是。
2026-05-07 20:45:56
177
原创 c语言输入函数
域宽,为一正整数,用手指明截取输入数据的位数。只能用于整型数据输入。返值:正常,返回读取的字符;结束或出错,返回–1。输入数据默认用空格.回车或Tab键分隔。字符输入函数getchar()格式:getchar ():表示跳过当前输入项。功能:从键盘读一字符。
2026-05-07 09:15:04
206
原创 c语言输出函数
先看 n (精度): .2 表示保留 2 位小数,3.14159 四舍五入变成 3.14。再看 m (总宽度): 我们要求的总宽度是 8。g:根据给定的值和精度,自动选择f与e中较紧凑的一种格式,不输出无意义的0。因为实际宽度 4 大于要求的宽度 3,系统会忽略 m,保证数据完整。x:以无符号十六进制整数形式输出整数(不输出前导符0x)解释: 只有两位小数,为了凑够6位,后面自动补了4个0。%e 输出小写字母 e,%E 输出大写字母 E。保留 2 位小数变成 3.14,实际宽度是 4。
2026-04-27 11:58:07
220
原创 c语言关系和逻辑运算
" 后,x的值为__2__,y的值为__1__,z的值为__1__,t的值为__1__。它只是画了括号,把表达式分成了 A || B 的形式(其中 A 是 ++x,B 是 ++y && ++z)。逻辑与运算时,计算到某个操作数为假,可以确定整个表达式的值为假时,剩余的表达式部分便不再计算。逻辑或运算时,计算到某个操作数为真,可以确定整个表达式的值为真时,剩余的表达式部分便不再计算。&&和‖是一种短路运算,所谓短路运算,是指在计算的过程中,表达式值能确定,便不再计算下去。所以:2‖(++y && ++z)
2026-04-08 18:35:38
57
原创 c语言算数运算
例:i=1, (++i)+(++i)+(++i)的值为多少。如:10%3=1是正确的,10.0%3=1.0是错误的。,i先自增3次,因此结果为(4+4+4)=12。有一个整数345,取它的个位数的表达式为(提取一个整数的各个数位,核心思想是利用。1.%要求参与运算的两个量必须是。3.0取余任何数结果都为0。),取百位数的表达式为(),取十位数的表达式为(如:(-5)%2=-1。2.a%b所得结果的。
2026-04-03 15:32:51
233
原创 c语言数据类型的转换
如:(int)(a+b) 强制将a+b的值转换成整型。不同类型数据进行运算时,先自动转换成同一类型然后进行计算。结论:只要有小数(float/double)参与运算,(目标类型名)(表达式)
2026-04-01 14:27:02
29
原创 c语言常量与变量
1.必须有数据类型(比如整数用 int,小数用 float 或 double)。特殊:'A'-65 'a'-97 '0'-48。3.结尾必须有分号(;),因为它是一条完整的C语言语句。因为它是定义变量,所以必须严格遵守定义变量的语法。const 是把一个普通的变量变成“只读”状态,你可以把它理解为高级的“查找并替换”功能。求字符串中有多少个字符(不含\0)2.必须有等号(=)进行赋值。ASCII 大小:1B。#define 是C语言中的。使用 const 关键字。
2026-03-30 19:14:12
58
原创 c语言数据类型
有符号数在计算机中有三种表达方法,即原码.反码和补码,任何正数这三种码的形式相同,只有负数有不同的表示形式.+2的15次方=2的16次方-1=65535。在16位计算机中,有如下程序段,其输出结果为(65535)思路:-1有符号->计算机中存储(补码)->无符号数的真值。负数:[x]反是[x]原的符号位不变,数值位取反。解:16位计算机->int 16bit。正数:[x]原=[x]反=[x]补。%u->无符号+进制形式(整数)计算机中通常有符号数的存储是以。[[x]补]补=[x]原。
2026-03-19 12:14:36
62
原创 c语言进制转换
1x2的3次方+1x2的2次方+0x2+1x2的0次方。小数部分:乘N取整,积为0时,将整数部分正序输出。非十进制数转十进制数。十进制数转非十进制数。例:0.25D= B。
2026-03-11 15:06:48
227
原创 c语言的基本语法成分
3.严格区分大小写,如:iot和Iot不同。4.不能使用关键字->1.标识符规则:1.数字,字母,下划线组成。3.必须有一个且只能有一个。2.c语言程序由若干。,主函数是一个程序的。
2026-03-05 20:37:07
36
原创 c语言的执行过程
4.c语言是高级语言,不能直接被直接执行,需要进行。其中源程序,目标程序不能被计算机直接执行,3.能够被计算机直接执行的语言是。2.机器语言和汇编语言统称。
2026-01-12 21:56:15
44
原创 Mysql预处理
即使多次传递的语句大部分内容都是相同的,每次执行之前还是要先解析、编译之后才能执行。MySQL服务器对数据和预处理 SQL 编译,然后执行该SQL语句。MySQL服务器对数据和预处理sQL编译,然后执行该sQL语句。即使多次传递的语句大部分内容都是相同的,每次还是要重复传递。MySQL 服务器对 sQL 语句进行解析-编译,但不执行。MySQL 服务器对sQL语句进行解析-编译,但不执行。MySQL服务器对 sQL语句进行解析-编译-执行。的语句,直接执行这些语句消耗的时间是巨大的,
2025-05-14 14:05:30
295
原创 表中数据的查询操作-多表查询
`student` 表有 3 行,`class` 表有 2 行 → `SELECT * FROM student, class` 返回 3×2=6 行。insert into student (name, age, gender, class_ id)values('张三',20,'男',1);原因:`id` 和 `name` 可能同时存在于 `student` 和 `class` 表中,数据库无法区分。insert into class(name,`desc `)values('一班’,'火箭班);
2025-04-30 15:41:02
654
原创 表中数据的查询操作-分组和having条件查询
按 class 分组,计算每组学生的年龄平均值( AVG(age) ),并返回班级和对应平均年龄。HAVING是去结果集中查询符合条件的数据,可以对分组之后查询到的结果进行筛选。WHERE是去数据表中查询符合条件的数据返回结果集。给 avg(age)改名 avgAge。分组查询GROUP BY。在对数据进行分组的时候,HAVING条件查询。
2025-04-09 16:15:05
206
原创 表中数据的查询操作--聚合函数
total 是为 COUNT(*) 的统计结果设定的别名。通过这个别名,查询结果的列名会更清晰易读(显示为 total 而非 COUNT(*) )。对表中的数据进行统计和计算,一般结合分组(GROUPBY)来使用,用于统计和计算分组数据。AVG()计算查询结果中所有指定字段的平均值。SUM()计算查珣结果中所有指定字段的和。MAX()求查询结果中指定字段的最大值。MIN()求查询结果中指定字段的最小值。COUNT()计算查询到了多少条数据。--给查询出来的字段起别名。
2025-04-09 11:07:38
429
原创 表中数据的查询操作-排序和分页查询
跳过 4 条记录(忽略 0、1、2、3 ),从第 4 条开始取 2 条,获取 4、5 两条记录。:跳过 0 条记录,从第 0 条开始取 2 条,即获取 0、1 两条记录。( OFFSET )**表示查询时需要跳过的记录数量,即从指定位置之后开始获取数据。),从第 2 条开始取 2 条,获取 2、3 两条记录。”,再通过 LIMIT 指定获取后续多少条记录,从而实现分页效果。
2025-04-02 14:55:43
348
原创 表中数据的查询操作-基础和where条件查询
insert into student (name, age, gender,class)values('李四',19,'女','一班');insert into student (name, age, gender,class)values ('王五',21,'女',二班');insert into student (name, age,gender,class)values('孙七',19,'男',三班');gender enum(‘男’,‘女’,‘保密')default‘保密’
2025-03-19 15:46:45
355
原创 Leetcode20.有效的括号
这是 Java 中一个 内置的栈类,位于 java.util 包中。- 如果后续再次执行 stack.push('b');,字符 'b' 会压在 'a' 上方,此时栈顶元素是 'b'。给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。- 如果 ch 是 'a' ,那么字符 'a' 会被放入栈的顶部。//如果输入的字符串是空的(没有任何括号),直接返回 true (每个右括号都有一个对应的相同类型的左括号。输入:s = "()"
2025-03-18 11:28:46
323
原创 SQL约束-外键约束
desc 是“describe”的缩写,用于查看表的结构,包括字段名、数据类型、是否为主键等信息。foreign key (user_id) -- 指定dynamic表中的user_id字段为外键。-- 表示该外键引用user表中的id字段。如果一张表中的一个字段指向了另一张表中的主键,就将该字段叫做外键。,是长度为255的可变字符类型且不允许为空;从表引用着数据,主表对应的主键。从表引用着数据,主表对应的主键。content 用于存储。外键操作:action。
2025-03-11 00:17:46
556
原创 LeetCode14.最长公共前缀
/这段代码的作用是:逐个检查所有字符串的第 i 个字符是否与基准字符 c 相同。如果发现某个字符串的长度不够(即第 i 个字符不存在),或者字符不匹配,则立即返回当前找到的最长公共前缀。- substring(0,i) :截取第一个字符串 strs[0] 从索引 0 到 i-1 的子串(因为 Java 的 substring 是左闭右开)。输入:strs = ["flower","flow","flight"]输入:strs = ["dog","racecar","car"]
2025-03-10 23:19:49
439
原创 Leetcode 13.罗马数字转整数
例如,对于罗马数字 IX ,先遇到 I (值为 1 ),后遇到 X (值为 10 ),当遇到 X 时,由于 X 的值大于 I ,根据规则 I 应该被减去(即 10 - 1 = 9 )。- 如果 preNum 小于 num ,说明当前字符代表的数值比前一个字符代表的数值大,按照罗马数字的规则,应该减去前一个数值(例如 IV , I 应该被减去)。例如,对于罗马数字 III ,在循环中,每次处理一个 I 时,会将其值加到 sum 中,但最后一个 I 对应的整数值在循环结束时还没有被处理。
2025-03-04 11:59:00
874
原创 leetcode 1.两数之和
先从2开始依次向后遍历,依次加后一个数,先是2+7.再是2+11,2+15,再从7开始向后遍历,7+11,7+15,再是11+15。给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。//创建一个长度为二的整数数组result,用于存储最终找到的两个数组的索引。可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。//未找到结果时,抛出异常。
2025-02-24 22:57:16
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅