自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【c语言】动态内存管理

1.为什么存在动态内存管理上述的开辟空间的方式有两个特点:1.空间开辟大小是固定的。2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。

2025-05-09 17:25:44 1037

原创 【c语言】使用动态内存管理实现一个通讯录

通过动态内存管理实现一个通讯录

2025-05-08 15:51:16 284

原创 【c语言】自定义类型:结构体,枚举,联合

/结构体变量的定义和初始化int x;int y;int age;int data;int a = 10;int b = 10;//使用变量初始化//乱序初始化struct Student s2 = { .age = 20,.name = "好蛋大王" };//结构体嵌套初始化return 0;

2025-05-07 16:22:56 984

原创 【c语言】字符函数和字符串函数

目录1.函数介绍1.1 strlen1.2 strcpy 1.3 strcat 1.4 strcmp1.5 strncpy1.6 strncat 1.7 strncmp1.8 strstr1.9 strtok 1.10 strerror1.11 memcpy1.12 memmove 1.13 memset​编辑 1.14 memcmpstrcat的使用:strstr的使用: strstr的模拟实现:1.9 strtok 1.10 strerror注意:不要隐藏文件的扩

2025-05-01 21:56:09 1264

原创 【c语言】指针和数组笔试题解析

指针相减得到两指针间的元素个数且数组在内存中从低地址向高地址存储:&p[4][2]-&a[4][2]=-4。补码:1111111111111111111111111111111111100(内存中存储)以%p格式打印:补码即地址(x82—32位—4字节—8个十六进制位):FFFFFFFC。反码:1111111111111111111111111111111111011。原码:10000000000000000000000000000100。以%d格式打印:-4。

2025-04-22 20:11:08 284

原创 【c语言】指针进阶

能够指向数组的指针。数组名是首元素的地址但存在两个例外:1.sizeof(数组名),这里的数组表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节2.&数组名,这里的数组名表示整个数组,取出的是数组的地址int main()//int*//int*//p存放数组的地址,是数组指针return 0;运行结果://加4个字节//加4个字节//加40个字节指针类型决定了指针+1的步长是几个字节数组指针的写法由语法规定//整型指针。

2025-04-21 16:28:32 845

原创 【c语言】猜凶手

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。判断为真返回1,三人说了真话,那么四个表达式之和为3。现在请根据这些信息,写一个程序来确定到底谁是凶手。已知3个人说了真话,1个人说的是假话。

2025-04-12 20:55:34 265

原创 【c语言】整形存储练习

【代码】【c语言】整形存储练习。

2025-04-12 20:43:54 132

原创 【c语言】指针习题

思路:从前往后找偶数,从后往前找奇数,只需要遍历一次,效率高。调整奇数偶数顺序(双指针)

2025-04-12 20:13:05 131

原创 【c语言】结构体习题

练习二:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水。注意:多出的空瓶也要算到下一次的空瓶数中去。

2025-04-12 19:33:30 249

原创 【c语言】指针习题

水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。int (*arr)[10]——>先定义了指针*arr,int和[10]表示指针arr指向含有n个int类型的数组。练习七:求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,练习四:写一个函数,可以逆序一个字符串的内容。——>数组arr[10],存储的类型是int*练习二:在小端机器中,下面代码输出的结果是。注意:逆序字符串的内容,不是逆序打印。

2025-04-12 19:03:58 294

原创 【c语言】倒置字符串

将一句话的单词进行倒置,符号不变,用例长度不超过100。

2025-04-09 15:47:16 230

原创 【c语言】深度剖析数据在内存中的存储

char //字符数据类型short //短整型int //整形long //长整型(省略了int)long long //更长的整形float //单精度浮点数double //双精度浮点数数据类型的意义:1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。2.如何看待内存空间的视角。

2025-04-07 18:11:05 961

原创 【c语言】算术转换习题

注意:全局变量的缺省值是0,i--的结果是-1,sizeof的结果为无符号整型,int型与无符号整型运算需要算术转换为无符号整型,i的补码为11111111111111111111111111111111,作为无符号整型的大小为2^32-1,而sizeof(i)的结果是4,所以返回‘>’思路:arr1,arr2数组中的元素 拿走一个下标++,arr3数组存入一个下标++注意:数据结构合并两条有序链表也是相同思路,但是链表通过指针访问,数组通过下标访问。也可以直接输出,不需要创建arr3。

2025-04-07 11:01:59 171

原创 【c语言】实用调试技巧

2.1环境准备Debug环境下。

2025-04-05 20:27:25 847

原创 【c语言】结构体

函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。而传递地址,只需要为形参开辟4/8字节,效率更高。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的成员可以是标量、数组、指针,甚至是其他结构体。//tag结构体自定义名。普通的内置类型无法表示一个复杂的对象。结构体传参的时候,要传结构体的地址。数组:一组相同类型元素的集合。结构体指针->成员名。

2025-04-05 12:08:58 320

原创 【c语言】初阶指针

地址的产生:对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电平(低电压)就是1或者0;允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。&数组名,此时数组名表示整个数组,取出的是数组的地址,数组的地址和数组首元素的地址值相同,但是类型和意义不同。//++的优先级高于间接访问操作符,但p++的结果是p,解引用得到原指针指向的变量。(正确,p是指针变量)arr++;

2025-04-05 01:57:55 1301

原创 【c语言】操作符习题

【代码】【c语言】打印整数二进制的奇数位和偶数位。

2025-04-04 16:49:28 96

原创 【c语言】交换数组

注意:数组名是首元素的地址,是一个常量值,不能直接通过交换数组名来交换数组的内容,只能交换每一个元素达到目的。将数组A中的内容和数组B中的内容进行交换。

2025-04-04 15:25:57 130

原创 【c语言】使用函数实现数组操作

实现reverse() 函数完成数组元素的逆置。注意:区分数组元素的逆置(内容改变)和倒序打印。实现print() 打印数组的每个元素。要求:自己设计以上函数的参数,返回值。实现函数init() 初始化数组为全0。创建一个整形数组,完成对数组的操作。

2025-04-04 13:49:23 118

原创 【c语言】操作符详解

(一个整数有4个字节=32bit位,对于有符号整数,最高位的一位是符号位,符号位为1表示负数,符号位为0表示负数。++(注意:无论前置还是后置,操作数都会进行自减/自增操作,但是操作数赋给其他变量时,前置后置的结果不同——前置:先变化再赋值;要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。

2025-04-04 12:26:03 1143

原创 【c语言】数组

注意:当检查边缘位置雷的个数时可能会越界,因此需要对每一个需要检查的位置进行判断是否越界——可以将数组board[n][n]初始化的范围扩大为board[n+2][n+2]C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,所以程序员写代码时,最好自己做越界的检查。注意:二维数组初始化后,数组的行可以不指定大小,但是列必须指定大小,否则下一行的元素的起始位置不确定(二维数组的内存存储)注意:实参不可以用&arr(数组的地址),无论是谁的地址,大小都是4字节,

2025-01-24 21:19:15 688

原创 函数栈帧的创建和销毁

寄存器的种类很多(eax,ebx,ecx...),其中ebp(栈底指针),esp(栈顶指针)这两个寄存器存放用于维护函数栈帧的地址(每一个函数调用都要栈区创建一块空间)在不同编译器中,函数调用时栈帧的创建和销毁有区别,具体细节取决于编译器的实现,这篇文章基于VS2013讲解。可以发现,在VS2013中,main()函数也是被其他函数调用的:(由下自上逐级调用)传参的顺序是怎样的?传参的顺序是怎样的?为什么局部变量的值是随机值?函数调用是结束后怎么返回的?函数调用是结束后怎么返回的?

2025-01-22 12:17:25 338

原创 git克隆到本地的仓库文件夹无法显示对勾和感叹号图标解决办法

输入地址:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers。win+R打开Windows系统运行窗口输入regedit打开注册表。找到Tortoise相关文件后重命名,在原名字前加上几个空格即可。打开Windows任务管理器将Windows资源管理器重新启动。

2025-01-21 22:24:14 439

原创 【c语言】函数

在计算机科学中,子程序(英语:),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。2.函数的分类库函数自定义函数2.1 库函数1. 我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能:将信息按照一定的格式打印到屏幕上(printf)

2025-01-20 18:51:50 809

原创 【c语言】猜数字游戏实现

游戏思路:电脑随机产生一个1-100之间的数,猜大告诉你猜大了,猜小告诉你猜小了,猜对:恭喜你猜对了;

2024-11-16 19:06:11 297

原创 【c语言】分支语句和循环语句

for循环中的break与while中的相同,都直接终止循环;注意:i如果在循环中定义(c99中定义的for循环的初始化部分直接可以定义变量),则出循环后不能使用,编译时就会报错;判断部分变成赋值,赋的值即为判断部分的结果(真为1,假为0;0为假,非0为真),赋值为0则不进入循环,k=0;注意:age>18&&age

2024-11-05 09:18:35 716

原创 清理缓冲区

读取数据,'\n'将数据放入缓冲区,数据被函数读取后还有'\n'留在缓冲区,所以getchar()函数是将遗留在缓冲区的'\n'读取了。注意:判断位置是EOF和'\n'的区别:EOF用于多组输入,逐次输入,每次输入都返回一个结果,用ctrl+z结束输入;'\n'用于清理缓冲区,是一次输入,逐个读取时的结束标志;修改代码:scanf函数遇到空格停止读取,留在缓冲区中的数据不止有'\n',需要getchar()多次读取。注意区分显示器上的'\n'和缓冲区中的'\n',缓冲区中的'\n'不在显示器上显示。

2024-11-04 10:02:03 422

原创 VS输出中文编码问题解决

2024-10-25 08:22:01 138

原创 【c语言】初识C语言

C语言是人与计算机交流的一种计算机语言C语言是一门通用的计算机编程语言,广泛应用于底层开发,c语言的设计目标是提供一种能以简易方式编译,处理低级存储器,产生少量机器码以及不需要任何运行环境支持便能运行的编程语言。操作系统调用驱动层驱动硬件工作操作系统及以上是上层软件操作系统及以下是下层软件C语言更适合与硬件交互的工作,即底层开发二十世纪八十年代,为了统一C语言的语法规则,由美国国家规则局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初标准。

2024-10-21 13:21:47 1116

原创 scanf函数

scanf函数是用来从键盘读取数据的;如果能正常读取数据,返回的是读取到的数据的个数;如果读取错误或者读取结束,会返回(-1);//简单验证scanf函数的返回值问题int a = 0;int b = 0;return 0;scanf只读取到EOF,返回值为-1⚠️注意:CTRL+z是scanf函数结束标志,vs环境下需要三次CTRL+z(bug)才能结束。

2024-10-20 10:08:51 357

原创 VS提示scanf函数不安全的解决办法

scanf_s是VS这个IDE提供的,如果在代码中使用了scanf_s,那代码只能在VS上编译,其他如gcc,clang等编译器不识别scanf_s,代码就失去了可移植性

2024-10-16 15:37:15 636

原创 VS 2022上手指南

Debug为调试版本,包含调试信息,并且不做任何优化,便于程序员调试程序;Release为发布版本,往往是进行了各种优化,是代码大小和运行速度上都是最优的,便于用户使用;实例实例一实例二int main()int i = 0;for (i = 0;i

2024-10-13 20:35:05 1447 1

原创 gitee仓库的代码上传

1.创建远程仓库; 2.克隆远程仓库到本地仓库; 3.上传代码:(上传代码的三板斧) 1)add将代码预上传到本地仓库;​​​​​​​ 2)commit将代码上传到本地仓库; 3)push将代码推送到远程仓库中;

2023-12-24 10:59:12 547 1

空空如也

空空如也

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

TA关注的人

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