自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 一些易错,易混淆习题

【代码】一些易错,易混淆习题。

2024-08-22 15:09:26 81

原创 strlen与sizeof

它可以在编译时计算,因为它仅仅是根据类型或变量所占的内存空间进行计算的,而不需要运行时信息。strlen函数从传入的字符串(实际上是字符指针)的起始位置开始,逐个字符进行遍历,直到遇到第一个空字符‘\0’为止。而sizeof的计算是在编译时完成的,因为它只需要知道类型或变量在内存中的大小。strlen是一个在C/C++语言中广泛使用的字符串处理函数,其全称是“string length”的缩写,用于。strlen函数的返回值是size_t类型,这是一个无符号整数类型,能够表示足够大的对象大小。

2024-08-22 12:54:26 236

原创 指针的内容

就是一个数组,里面存放的全都是函数指针(例 int (*parr[3])(int, int)),parr[3]就是一个函数指针数组,里面的每一个元素类型都是int (*)(int, int)。(1)sizeof 数组名(例 sizeof(arr)),这里的arr代表的是整个数组的地址,虽然它的地址还是和数组首元素的地址相等,但是它们的含义不同。通俗的讲,指针就是地址,但严谨的说,指针是存放地址的指针变量。(2)指针 - 指针 ,得到的结果是两个指针之间元素的个数,而不是字节个数(指针 + 指针是非法的)

2024-08-21 16:36:14 687

原创 冒泡排序与qsort函数

冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换的元素为止,这意味着数列已经排序完成。它用于对数组进行排序,但是它不直接操作数组的类型和大小,而是通过函数指针来允许用户自定义排序的规则(即比较两个元素的方式)。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。

2024-08-21 15:19:15 172

原创 常量字符串是放在只读数据段的

因为“abcdef”是一个常量字符串,常量字符串通常存储在只读数据段(通常是.rodata段)中,并且相同的字符串字面量在多个地方出现时,编译器可能会优化为只存储一份副本。上面这个代码,相信有很多人会给出p1!= p2, arr1 == arr2 的答案,但事实上答案并不是这个,而是p1 == p2,arr1!而arr1和arr2是两个不同字符数组的首个元素的地址,虽然两个数组中存放的元素是一样的,但两个数组是分别在内存中开辟了一个不同的空间,所以首元素的地址是不一样的。

2024-08-19 15:50:52 215

原创 函数的递归求阶乘(不考虑栈溢出)

函数的递归求阶乘(不考虑栈溢出)

2024-08-07 11:13:30 185

原创 井字棋小游戏

井字棋小游戏

2024-08-06 16:23:50 179

原创 数组传参前后到底有什么不同

传递前数组是一个在内存中连续存储的元素集合。数组名(在没有使用数组下标时)通常被视为指向数组首元素的指针。数组的大小(即元素的数量)在传递数组名时不会自动传递,需要额外指定或通过某种方式计算。传递后函数接收的是一个指向数组首元素的指针。函数通过这个指针可以访问数组中的元素,但它无法直接知道数组的大小(除非有额外的参数传递了这个信息)。由于只是传递了指针,因此这种方式是非常高效的,因为它避免了复制整个数组的开销。

2024-08-06 14:51:53 247

原创 猜数字小游戏

猜数字小游戏

2024-07-26 16:07:47 286

原创 控制语句

由于grade被初始化为'A',程序将执行与'A'对应的case块,打印"优秀",然后通过break语句跳出switch结构。goto 语句可以用于跳出多层嵌套的循环或条件语句,但通常更好的做法是使用循环控制语句(如 break)和函数返回(return)来实现这一目标。(2)表达式2可以省略,即不判断继续条件,循环无终止进行下去,这时候若要终止循环,则需要在循环体中有跳出循环的控制语句如break语句。控制语句包括分支语句(选择语句),循环语句和其他语句,今天我们来系统性的学习一下这三种语句。

2024-07-26 15:44:47 952

原创 关键词static的用法

关键词static用于修饰变量和函数 static修饰局部变量时,改变了局部变量的存储位置,使得局部变量不被销毁,变成了和程序的生命周期一样长。运行结果: 在这整个代码中,a和c的值从始至终都没有改变,a=2,c=1。只有b在三次循环中改变了,第一次循环b=4,第二次循环b=5,第三次循环b=6。所以三次循环输出的值(a+b+c)的值分别为7,8,9。若是整型变量b没有被static修饰,则三次循环的结果为”7 7 7“。因为如果当b没有被static修饰时,第一次循环经过 int b =

2024-07-23 21:52:07 692

原创 初识结构体

生活中经常会遇到一些不能用基本数据类型int,char,float等来表示的事物,如表示一个人,我们需要表示这个人的 姓名+年龄+性别+地址+电话号码。例如,在处理学生信息时,可以将学生的姓名、年龄、性别和电话号码等封装在一个结构体中,然后对整个结构体进行操作,而不是分别处理每个数据项。所以,总结来说结构体提供了一种将数据组织成有意义集合的方式,使得相关的数据能够作为一个整体被处理。同时,结构体也提高了代码的可读性,为数据项提供有意义的名称,使得代码更加易于理解和维护。

2024-07-22 20:33:11 123

原创 初步认识指针

当我们赋给一个变量一个值时,这个变量就被存储在计算机的内存中,内存可以理想化的划分为若干个空间,每个空间都有其所对应的地址,通过这个地址,我们就可以找到这个内存空间中存储的值。而指针就是用于存放地址的变量,通过指针变量,我们可以得到变量的地址。对于32位电脑来说,内存会划分为一个个的内存空间用于存放数据,而每个内存空间都会有一个编号,类似于宿舍楼,把一栋宿舍楼比作内存,一个个宿舍就是一个个内存空间,而每个宿舍都有一个门牌号如(505),宿舍的门牌号就对应着内存空间的编号。

2024-07-19 11:16:28 245

原创 【无标题】

哈哈,今天是2024年的7月17号,作为一名计算机0基础大学生,我深知学习一项技能的重要性,于是,我决定在今天正式入坑c语言,立志要成为一名c语言大佬,虽然听说c语言并不好学,而且就业环境也大不如前,但我还是决定入坑c语言,希望我的努力会有回报,为自己加油!

2024-07-17 20:28:36 117 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除