- 博客(35)
- 收藏
- 关注
原创 【C语言】动态内存管理基础知识——动态通讯录,如何实现通讯录容量的动态化
动态内存管理的函数有:malloc,calloc,ralloc,free,本文讲解动态内存函数和使用,如何进行动态内存管理,实现通讯录联系人容量的动态化,对常见动态内存错误进行总结。
2023-12-22 12:59:51
6842
88
原创 【C语言】【数据结构】自定义类型:结构体
这是一篇对结构体的详细介绍,这篇文章对结构体声明、结构体的自引用、结构体的初始化、结构体的内存分布和对齐规则、库函数offsetof、以及进行内存对齐的原因、如何修改默认对齐数、结构体传参进行介绍和说明。
2023-12-11 20:50:37
4260
55
原创 字符函数和字符串函数
C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。常量字符串适用于那些对它不做修改的字符串函数。目录前言字符分类函数函数介绍strlen正常情况下的strlen的使用在没有' \0 '的情况下(易错)strlen的返回值是无符号类型学会strlen函数的模拟实现1.计数器方法2.指针-指针方法3.递归方法strcpy源字符串必须以 '\0' 结束⽬标空间必须⾜够⼤,以确保能存放源字符串⽬标空间必须可修改strcpy的模拟实现strcat。
2023-12-07 09:29:11
1504
81
原创 C语言进阶之笔试题详解(2)
这里的内容包括二维数组笔试题和指针笔试题,供给读者对这部分知识进行加深和巩固。✨猪巴戒个人主页✨所属专栏《C语言进阶》🎈跟着猪巴戒,一起学习C语言🎈数组名的意义:1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名表示整个数组,去除掉是整个数组的地址。3.除此之外所以的数组名都表示首元素的地址。4.二维数组可以看作有多个一维数组组成,一维数组可以看作二维数组的每个元素,行数代表制二维数组的意思个数,列数代表一维数组的元素个数。
2023-11-30 08:49:08
2025
106
原创 C语言进阶之笔试题详解(1)
1.数组名大多数表示首元素的地址,有两个例外:1.sizeof(数组名)2.&数组名。数组名表示的是整个数组。2.不同类型地址跳过的字节不一样,&a+1,&a表示的是整个数组,+1就会跳过一个数组的大小。&a[0]+1,&a[0]是数组第一个元素的地址,所以+1跳过的是一个元素的大小。3.地址意义可能不同,但是地址的大小都是4 / 8个字节。1.strlen(const char* str)传递的参数是地址,如果传递数值的话,就会产生访问冲突的问题。
2023-11-26 10:07:51
2674
97
原创 C语言进阶之冒泡排序
中的e1,e2就是我们要比较数据的地址。在这个比较函数中我们实现不同类型的元素比较void*是无具体类型的指针,可以接收任何类型的地址void*是无具体类型的指针,所以不能解引用操作,也不能+-整数当比较函数返回的是大于0的数字,那么两组数据就会进行交换。进行整型数据的比较, 这是进行升序排列。
2023-11-21 21:50:53
759
100
原创 C语言进阶之指针(2)
函数指针--指向函数的指针return x+y;int main()//&数组名 - 取出的数组的地址//数组指针//&函数名——取出的是函数的地址//函数指针创立的形式对函数来说&函数名和函数名都是函数的地址。,可以省略x,y,主要把参数的类型表达清楚。我们可以取Add的地址传给pf,也可以直接将Add直接传给pf。
2023-11-14 22:40:27
396
67
原创 C语言进阶之指针(1)
数组指针是数组还是指针?答案:指针。//p1,p2分别是什么?p1是指针数组,p2是数组指针。p1没有和没有()与[10]结合,代表有10个元素的数组,每个数组的类型是int*p2有()与 * 结合,代表p2是一个指针,指向的是[10],10个整形元素的数组。
2023-11-14 07:30:00
240
16
原创 C语言解决汉诺塔问题
Hanoi(汉诺)塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3座A,B,C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求输出移动盘子的步骤。
2023-11-11 13:19:14
331
20
原创 关于函数递归的基础
递归就是直接或者间接地调用自身,把一个大型复杂的程序简化为规模较小的程序,将大量的程序用简单的程序来代替。递归的主旨是将大事化小。1.递归是什么?2.递归的限制条件的要求3.对题目运用递归的方式进行求解4.栈溢出问题(为什么要有限制条件)正整数积。
2023-11-09 15:46:44
162
8
原创 (保姆级)一篇帮你搞懂循环语句
C语⾔是结构化的程序设计语言,这里的结构指的是顺序结构、分支结构、循环结构。我们今天要讲的是循环语句while、for、do while。
2023-11-02 13:53:38
228
8
原创 (保姆级)一篇搞懂分支语句
C语言是结构化的程序设计语言,这里的结构指的是,C语言能够通过语句实现这三种结构,其实就可以通过这三个结构来实现我们的代码。选择结构():我们可以通过来实现我们分支结构:我们可以通过实现我们的循环语句。
2023-11-01 15:08:11
184
10
原创 关于MSVS的实用调试技巧
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序;Release 称为发布版本,它往往是进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的,以便⽤⼾很好地使⽤。debug版本用于我们调试,release版本用于服务客户。
2023-10-21 21:55:08
219
10
原创 [C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
【代码】[C语言][题]获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列。
2023-10-21 10:13:39
101
4
原创 [C语言][题]两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。
【代码】[C语言][题]两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。
2023-10-21 10:11:23
80
2
原创 [C语言]结构体
结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。结构体为复杂对象:人:名字+电话+性别+身高书:书名+作者+定价+书名p1,p2是全局变量,p是局部变量。
2023-10-20 20:49:03
153
4
原创 各种运算符的介绍,超详解
如果文中有出现错误的地方或者有疑问的地方,请私信博主,博主第一时间回复!C语言提供了以下运算符:(1)算术运算符 (+ - * / % ++ -- )(2)关系运算符 (> < == >= ~ | ^ &)(5)赋值运算符 (=及其扩展赋值运算符)(6)条件运算符 (?:)(7)逗号运算符 ( , )
2023-10-20 14:43:54
13665
7
原创 二级指针和指针函数
a的值是4,a的地址是0x009efadc,pa为指针变量,pa存的是a的地址0x009efadc,因此可以通过pa来找到a的值,或者修改a的值。* 为解引用操作符,int* pa表示pa为指针。ppa为二级指针,ppa存的是pa的地址,int** ppa中右边的*说明ppa是指针,而int*是说明ppa指向的对象是int*类型。二级指针是用来存放一级指针变量的地址的。pa# '&'为取地址操作符。
2023-10-20 13:34:44
111
3
原创 实践出真知,来刷一下题吧
KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o), U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。针对每组输入,输出为一行,如果输入字母是元音(包括大小写),输出“Vowel”,如果输入字母是非元音,输出“Consonant”。针对每行输入,输出该数是奇数(Odd)还是偶数(Even)。依次输入 x ,l ,r 三个整数。多组输入,每行输入包括一个整数。多组输入,每行输入一个字母。
2023-10-15 01:39:47
134
1
原创 a和i_pointer和*i_pointer的关系,指针、指针变量。
下面的“i_pointer”存放的是 i 的地址,所以我们称“i_pointer"为”指针变量“。* i_pointer 就是通过地址(0x003CF6EC)找到地址所存放的内容(a=0)。如果有一个变量专门用来存放另一个变量的地址,我们就称它为“指针变量”。通过地址能找到所需的变量单元,那么就可以说,地址指向该变量单元。地址形象地称为“指针”。也就是,”地址“=”指针“。那么何为 *i_pointer 呢?
2023-10-14 12:32:02
189
4
原创 如何开始学习编程
既然你选择了这一门地语言,就请你把它坚持下去,不要东学一点,西学一点,到时候竹篮打水一场空,还浪费了时间,想要学会编程不是一件简单的事情,因此我们需要花费较长的时间去理解,去练习,量变引起质变,将编程视为每天必做的事情,像刷牙,喝水般。只要你认真去学,就一定会有所收获。说到编程,不妨把编程比作为马拉松,想要学会编程,想要精通编程,想要通过编程来找工作的小伙伴要知道,编程不是一蹴而就的,不同于考试,临时抱佛脚,在考试的前几天疯狂地学习,而在第二天就能够取得不错的成绩,不能抱着速通的想法学习编程。
2023-10-12 20:42:31
177
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人