- 博客(18)
- 收藏
- 关注
原创 【C++】缺省参数
在C++中,缺省参数(Default Parameters)是指在函数声明中为参数提供的默认值。如果一个函数在调用时没有为某些参数提供实参,那么这些参数将自动使用其默认值。需要注意的是,虽然缺省参数提供了灵活性,但是过度使用或者不合理地使用默认参数可能会导致代码的可读性和可维护性降低。因此,在使用默认参数时应谨慎并保持清晰。函数时,可以只提供一个、两个或三个参数。函数有三个参数,其中。
2024-08-03 20:44:24 418
原创 【C++】函数重载
在C++中,函数重载(Function Overloading)是指在同一作用域内,可以有一组具有相同名字的函数,这些函数的参数列表必须不同,可以是参数的数量不同,也可以是参数的类型不同。编译器会根据传递给函数的参数来决定调用哪一个具体的函数。需要注意的是,虽然函数重载在C++中是常见的做法,但是它不应该被滥用,因为过多的重载函数可能会导致程序的可读性下降。时,编译器会根据传入参数的类型来决定调用哪一个。函数被重载了三次,每次的参数类型都不同。
2024-08-03 20:43:05 225
原创 【数据结构】二叉树和堆
在C语言中,二叉树是一种基础的数据结构,它由节点组成,每个节点包含数据元素以及指向其他节点的指针。高度(Height):节点的高度是从该节点到最远叶节点的最长路径上的边的数量。子节点(Children):如果节点A的左指针或右指针指向节点B,则节点B是节点A的子节点。层(Level):节点的层是从根节点开始计数,根节点在第1层,它的子节点在第2层,以此类推。父节点(Parent):如果一个节点有子节点,那么这个节点就是其子节点的父节点。根节点(Root):位于树顶部的节点,它是树中唯一没有父节点的节点。
2024-07-31 23:15:29 1760
原创 【数据结构】单链表和双向链表
链表是一种常见的基础数据结构,主要用于存储元素集合。链表通过指针连接元素,与数组不同,它不需要连续的内存空间。//定义双向链表节点的结构。为了接口一致性 ,进行优化。为了接口一致性,进行优化。
2024-07-19 23:02:14 1392
原创 震惊!!!居然有这么详细的顺序表 ,走过路过不要错过
顺序表(Sequential List)是一种线性表,其元素在内存中连续存放,可通过索引直接访问。线性表在上是线性结构,也就是说是连续的一条直线,但是在上并不一定是连续的。线性表在物理结构上存储时,通常是以数组和链式结构的形式存储的。指针和动态内存分配以下是这两种顺序表在C语言中的简单定义:除了这两种基本的顺序表外,还有一些其他的顺序表, 比如说单顺序表、多重顺序表、稀疏顺序表以及压缩顺序表,感兴趣的可以去了解一下。顺序表具有以下特点:存储空间连续:顺序表的元素存储在一块连续的内存空间中。
2024-07-13 00:15:00 770 1
原创 【C语言】左旋字符串
calloc 的第一个参数是元素的数量,第二个参数是每个元素的大小,这里是 sizeof(char)。在 reverse 函数中,固定了新数组的长度为4,这意味着这个函数只能处理长度为4的字符串。在上面那个代码中, char newarr[n] 这行代码想在栈上创建一个大小为 n 的数组,其中 n 是一个变量。为了解决这个问题,我们可以使用 malloc 或 calloc来动态地分配内存,这样就可以在运行时确定数组的大小。在其他方面,使用 calloc 的代码与使用 malloc 的代码相同。
2024-07-11 14:52:30 1013
原创 C语言之函数
形参:如果不去调用的话,形参就只是形式上存在,不会向内存申请空间,它在函数调用完成后会自动销毁。上述代码中的x和y就是形参。函数在设计的时候遵循高凝聚,低耦合的原则,要保证函数的功能尽可能的单一,对其他的依赖性低。:是把实参的地址传递给形参,操作形参可以对这块地址的内存单元进行修改,从而可以改变实参。:是把实参的数值传递给形参,形参是实参的一份临时拷贝,对形参的修改不会影响实参。*形参操作的数组和实参是同一个数组,所以数组传参时是不会重新创建数组的。实参:真实传递给函数的参数,上述代码中的a和b就是实参。
2024-05-19 21:19:19 976 2
原创 C语言之变长数组
注意,虽然变长数组的大小是用变量来指定的,但是在程序运行的时候,根据变量的大小来指定数组元素的个数,arr就是变长数组,因为它的长度取决于变量n的值,在运行之前是无法知道n是多少的。它的好处是不用在运行之前,随便给出一个长度,程序在运行是会为数组分配精确长度。vs2022没有支持c99中的变长数组,没有办法测试。c99中给了一个变长数组的新特性,就是我们可以。使用变量来指定数组的大小。数组的大小是不可变的。
2024-05-13 13:50:01 378 2
原创 c语言之数组
每一行内部两个相邻的元素的地址相差4个字节,跨行的两个元素的地址也相差4个字节(arr[0][4]和arr[1][0])。下标是从 0 开始的,第一个元素的下标是 0 ,第 n 个元素的下标是 n-1。,并且该数组存放的元素类型是 int ,所以相邻两个元素的地址相差 4 个字节。二维数组的访问也是通过下标的形式来访问的,根据行和列就可以锁定数组的一个元素。通过下标访问数组的元素,要使用下标引用操作符 [ ]。在C语言中,二维数组的行和列的下标都是从0开始的。[ ]中的常量值:指的是数组的大小。
2024-05-13 13:21:41 835 2
原创 c语言之猜数游戏
而srand 函数的参数可以设置rand 函数生成随机数时的种子,让种子变化就可以生成随机数了。”的基准值进行计算生成的随机数,而每次生成随机数默认种子为1,所以每次生成的值一样。2.猜数过程中,根据猜测数字的大小给出反馈(是大还是小)。一般使用程序运行时间为种子,因为时间是不断变化的。*不管运行多少次,结果都是一样的,这是为什么呢?1.电脑随机生成一个1~99的数字。这样就可以生成真正的随机数了.*rand 函数生成的是一个。这个时间的差值(时间戳)。要生成a~b的随机数。生成0~99的随机数。
2024-05-09 22:24:10 727
原创 c语言之循环结构
表达式为真,则进入循环;为假,则不进入循环。先循环,再判断,所以循环体至少执行一次。示例:逆序打印1~10的值。示例:逆序打印1~10得值。示例:打印0~9的值。
2024-05-08 22:43:22 254
原创 c语言之分支结构
else 总是与最近的 if 匹配,所以else 对应的是第二个 if ,并且a为0 而不是1,所以的一个 if 语句就不成立,就不会执行嵌套的if...else...了,最后什么都不会打印。默认 if 以及 else 后面只能控制一条语句,如果想控制多条语句,就得加上{ }。根据表达式的值,执行相应的语句,如果找不到对应的值,就执行 default 后面的语句。如果出现多个 if 和 else ,那么 else 总是和最近的 if 对应。表达式为真,就执行语句,表达式为假,就不执行。
2024-05-08 20:49:28 378 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人