- 博客(16)
- 收藏
- 关注
原创 学习C语言(十四)——字符函数和字符串函数
如果 s1 的值不为 '\0'时,就会地址+1,继续寻找不一样的值,找到这个位置时,就可以通过ASCII码值,将 s1 和 s2 位置的值相减。得到的是正数,就是 s1 大;得到的是负数,就是 s2 大。最后输出的结果为 > ,因为 strlen 函数返回的值是无符号整型(size_t),两个无符号整型相减得到的结果还是无符号整型,所以相减之后得到的值还是大于0的整型。方法三:使用递归的思想,在没有遇到遇到 '\0' 之前,就计算一个字符数量并将 str 在内存的位置+1,直到遇到 '\0',返回0。
2024-09-22 13:46:38 1619
原创 学习C语言(十三)——深入理解指针(4)
冒泡排序进行升序排序,是将一个整型数组中i个元素,两两相邻的元素进行比较,比较完之后将两个元素的下标加一往后推,这样比较了i-1次 之后,就会将最大的元素放到最后,每排完一趟之后,就可以在下一趟少进行一次排序(因为最大的已经排序到了后面),最后就可以将数组中的元素进行升序排序。strcmp 是库函数,是用来比较两个字符的大小的,按照英文字母的顺序,对相同位置的字符进行排序。下面右边的代码就是吧调用的函数的地址以参数的形式传递到另一个函数中,使用函数指针接收,函数指向什么函数就调用什么函数。
2023-08-26 13:33:56 62
原创 学习C语言(十二)——深入理解指针(3)
在之前的学习中我们知道,指针数组是一种数组,数组中存放的是地址(指针)。整形指针变量:int* pi;存放的是整型变量的地址,能够指向整型数据的指针。字符指针变量:char* pc;存放字符变量的地址,能够指向字符型数据的指针。那么,数组指针变量就是:存放数组的地址,能够指向数组的指针变量。分辨指针数组和数组指针变量//指针数组//数组指针变量解析:数组指针变量:p 先和 * 结合,说明 p 是一个指针变量,然后指向的是一个大小为10个正行的数组,所以 p 是一个指针,指向一个数组,叫数组指针。
2023-08-20 15:46:30 67 1
原创 学习C语言(十一)——深入理解指针(2)
通过代码我们可以发现, &arr[0] 和 &arr[0]+1 相差4个字节,arr 和 arr+1 也相差4个字节,是因为 &arr[0] 和 arr都是首元素的地址,+1就是跳过了一个元素。在理解指针(1)中,我们有讲到过,使用 &arr{0} 这样就拿到了数组的第一个元素的地址,但数组名本来就是首元素的地址,我们来进行一个测试。数组元素的访问在编译器处理的时候,也是转换成首元素的地址+偏移量,求出了元素的地址,然后再解引用来进行访问。我们会发现数组名和数组首元素的地址打印出来的结果是一样的,
2023-08-15 16:30:54 60 1
原创 学习C语言(十)——深入理解指针(1)
但是每次取到的 a 的地址都不一样,这是因为 a 是局部变量,在main函数执行结束后就会销毁,所以每次打印的地址都会不一样,但是设置成全局变量,地址就变成固定的了。使用 const 修饰 n,是为了 n 不被修改,但是 p 拿到了 n 的地址,这样就打破了 counst 的限制,这样就失去的 const 的作用了。这个宏被称为“断言”。在上面的代码中,n是不能被修改的。在上面的代码中,p 的左边是 int* ,* 说明 p 是指针变量,而前面的 int 说明 p 指向的是整型(int) 类型的对象。
2023-08-11 23:04:19 91 1
原创 学习C语言(九)——操作符详解
这是在十进制中的每一位都是有权重的,十进制从右到左对应个位、十位、百位……从左向右依次执行,整个表达式的结果是最后一个表达式的结果,并且这些表达式也能够改变其他变量的值。十进制转二进制的计算方式是:用2一直除十进制数字求余数,直到十进制数字为0,然后倒取余数,就是二进制数字了。例如,将二进制的1101011,转换为十六进制就是:0x6b。二进制转十六进制,从右到左,每4个二进制位转换为一个十六进制,不够4个二进制位的直接换算。举例,num1=-3,num2=5,求它们的按位与、按位或、按位异或、取反。
2023-08-07 22:01:07 52
原创 学习C语言(七)——运用分支、循环、数组、函数实现扫雷
今天来向大家讲解一下如何使用C语言来进行扫雷。这并不能真正得复刻扫雷整个游戏,只能对扫雷游戏的过程进行一个梳理。该项目中使用到的知识点有:C语言的数据类型、分支和循环、数组、函数。完成这个项目,能够对之间的知识点学到的知识点加以巩固并融入到实践中。
2023-08-01 19:10:46 99 1
原创 学习C语言(六)——函数
自定义函数为程序员写代码创造了更多的可能性。一般我们在使用函数的时候,直接将函数写出来就调用了。比如:我们要写一个判断一年是否为闰年代码第130行到136行为函数的定义,第143行是函数的调用。但是当我们把函数的定义,放到函数调用的后面,就需要在函数的定义前面加上函数的声明,否则会报错。声明函数只要交代清楚:函数名、函数的返回类型和函数的参数。函数的调用一定要满足:先定义后使用。函数的定义也是一种特殊的声明,所以如果函数定义放在调用之前也是可以的。
2023-07-29 20:22:52 43
原创 学习C语言(四)———分支和循环(下)——猜数字游戏
掌握了前面的知识,就可以写一些稍微有趣的代码。比如:猜数字游戏。但是这里需要使用到几个函数,下面先来介绍一下这几个函数。
2023-07-27 18:38:34 111 1
原创 C语言代码题解析(一)
前言:将在做题过程中的一些思路进行分享,也对一些错题进行回顾。如果有哪些地方我写错了,欢迎批评指正,愿与诸位携手共同拿下C语言。
2023-07-26 18:16:08 888 1
原创 学习C语言(三)——分支和循环(上)
C语言是结构化的程序设计语言,这里的结构指的是。我们可以使用 if、switch语句实现分支结构。使用for、while、do while实现循环结构。
2023-07-23 23:19:41 66
原创 学习C语言(一)——C语言常见概念
在VS2022中,首先需要创建项目才可以编辑代码。项目名称最好起的有意义,VS对中文兼容不太好,尽量不要使用中文,不要使用特殊字符和空格。最好指定存放代码的位置,方便后期查找代码。在项目中可以创建头文件(.h)和源文件(.c)。C++的后缀:.cpp //C plus plus。在今天的学习中,初步了解到了一些C语言的知识。主要有:main函数、printf函数和库函数、关键字、字符和ASCll编码、字符串和\0、转义字符。在操作过程中,有些地方需要注意。
2023-07-20 21:51:34 147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人