c语言复健学习
文章平均质量分 69
从零开始学习c语言
小_t_同学
一位大学生的分享博客,欢迎多多关注!!
展开
-
弄懂atoi函数的作用,重点包括如何模拟实现
第一步:我们对参数是否是空指针或者空字符串进行判断第二步:过滤空字符第三步:判断正负第四步:对整数进行转换重点是该怎么整数字符转换成整数,‘1’ - ‘0’ 就是数字1,我们用一个变量ret接受,下一个数字怎么办,ret = ret * 10 + 数字,循环就行了。原创 2024-09-27 09:00:00 · 238 阅读 · 0 评论 -
C语言长度受限制的字符串函数:(strncpy,strncat,strncmp)
重点:1.拷贝num个字符从源字符串到目标空间2.如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个3.这个函数不会拷贝'\0'。原创 2024-09-25 10:30:00 · 281 阅读 · 0 评论 -
C语言特殊字符串函数和字符函数
重点:1.delimiters 参数是个字符串,定义了用作分割符的字符集合2.第一个参数指定一个字符串,里面包含0个或者多个分隔符3.strtok函数找到str中的分隔符,会把它改成'\0',然后返回指向这个分隔符前面字符串的指针4.strtok函数会改变被操作的字符串,所有使用strtok函数切分的字符串一般是临时拷贝的内容并且可修改。5.strtok函数的第一个参数不是NULL,函数将找到str中的第一个切割的字符串,函数将保存它在字符串中的位置。原创 2024-09-25 10:30:00 · 334 阅读 · 0 评论 -
C语言常见字符串函数模拟实现一:(strlen,strcpy,strcat,strcmp,strstr )
重点:1.字符串已经'\0'作为结束标志,strlen返回的是字符串'\0'前面出现的字符个数(不包含'\0')2.参数指向的字符串必须要以'\0'结束。3.注意函数的返回值是size_t,是无符号的,加减是无法对比的。原创 2024-09-21 15:39:01 · 488 阅读 · 0 评论 -
C语言指针进阶笔试题(含解析)
解析:*(a + 1),a是首元素的地址,加1 之后就是第二个元素的地址,解引用就是2。原创 2024-09-19 16:24:14 · 366 阅读 · 0 评论 -
C语言进阶四:(指针和数组笔试题解析1)
主要是关于数组名的意义,1.sizeof(数组名)这里计算的就是整个数组的大小2.&数组名,这里就是取出的是整个数组的地址3.除此之外的所有数组名都表示首元素的地址(补充:表达式是有值属性和类型属性,sizeof是根据类型属性判断的)。原创 2024-09-19 10:00:00 · 143 阅读 · 0 评论 -
C语言指针进阶三:(回调函数,qsort函数的模拟)
回调函数就是通过函数指针调用的函数,如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其指向的函数时,我们所说这就是回调函数。原创 2024-09-04 10:30:00 · 425 阅读 · 0 评论 -
C语言指针进阶二:(函数指针数组,转移表)
函数指针数组就是存放函数指针的一个数组,数组里都是函数指针,那么该怎么定义:因为 [] 的优先级高于 * ,所以parr先与 [] 结合说明是一个数组,元素类型是 int(*)() 的函数指针。原创 2024-09-04 10:00:00 · 614 阅读 · 0 评论 -
C语言指针进阶一:(字符指针,数组指针,指针数组,函数指针)
在指针类型中我们知道字符指针类型,一般就是用于 char 的:上述代码会输出什么?之前的文章有讲过。原创 2024-09-02 10:30:00 · 711 阅读 · 0 评论 -
C语言分析数据在内存中的存储二:(浮点数在内存中的存储)
计算机存储 M 的时候,因为 M 总是 1.XXXXXX ,所以计算机默认 M 的第一位就是1 ,舍去1,只保存后面的部分,类如1.01,只保存 01,这样 M 就可以多保存一位有效数字。E是一个无符号整数,说明 E 为8位的时候,取值为:0~255,E 为11为,取值为:0~2047,但是我们知道实际情况E可能是负数的,所以规定存储E的时候要加上一个中间值,8位的E中间值是127,11位的E,中间值是1023。比如 2^10 E 是10,所以保存成32位,就是10+127=137,也就是10001001。原创 2024-09-02 10:00:00 · 1305 阅读 · 0 评论 -
有无符号整形加减,截断,提升等问题解析
分析:-128 的原码是 10000000 00000000 00000000 10000000补码是 11111111 11111111 11111111 10000000,因为是char 型,截断之后:10000000答案:4294967168的二进值就是:11111111 11111111 11111111 10000000。原创 2024-08-24 10:00:00 · 426 阅读 · 0 评论 -
大小端字节序存储介绍
大端存储模式:是指数据的低位保存在内存的高地址中,数据的高位,保存在内存的低地址中。小端存储模式:是只数据的低位保存在内存的低地址中,数据的高位,保存在内存的高地址中。什么是数据的低位高位?像十进制数字 478 ,低位就是最右边,在内存中存储的二进制也是这样。原创 2024-08-23 10:00:00 · 609 阅读 · 0 评论 -
C语言结构体初识(结构体变量)
有了结构体类型,定义变量就简单了:初始化(没有初始化的话,一般值是0):结构体是可以嵌套初始化的结构体成员的访问结构体变量访问成员是通过 点操作符( . )访问的如果是结构体变量指针该怎么访问成员:而且我们需要注意:只有通过 strcpy 可以修改,这个下次讲。原创 2024-08-08 22:34:56 · 259 阅读 · 0 评论 -
C语言指针介绍二:(指针数组)
P2 可以和 P3 比但是不可以和 P1 比,这就是规定,我们也不知道为什么。原创 2024-06-06 20:06:01 · 586 阅读 · 0 评论 -
C语言指针介绍一:(指针变量,指针类型的意义)
指针是内存中一个最小单元(一个字节)的编号,也就是地址,每一个单元都有属于自己的地址。平时我们说的指针一般说的是指针变量,用来存放内存地址的变量就叫指针变量。原创 2024-06-06 19:18:11 · 977 阅读 · 0 评论 -
C语言函数递归实现汉诺塔问题
当只有三个盘子的时候,就像图片一样移动,当盘子多了起来我们就很难分得清逻辑了。这个时候我们就可以用递归思维来解决这个问题,递归的要点就是。原创 2024-06-04 21:24:36 · 379 阅读 · 0 评论 -
C语言操作符详解二:(整形提升,sizeof和数组名,&&和||的特点)
总结:两个相邻的操作符先执行哪个,取决于优先级,如果相同,取决于他们的结合性(可以在网上查)。如果我们的表达式无法通过操作符的属性确定唯一的计算路径,那么就是有问题的。C语言中整数运算是以整形类型精度进行的,为了这个精度,表达式中的字符和短整型在使用前会被转换为普通整形,这种转换被叫做。b 和 c 就会被提升为普通整形,然后在执行加法,加法之后结果会被截断,然后再存储在a 中。如果在这个排行中排名低,那么要转换成高的才可以进行运算。整形提升是按照变量的数据类型的符号位来提升。上述代码中,c 是多少?原创 2024-06-02 17:40:06 · 440 阅读 · 0 评论 -
C语言操作符详解一:(左移右移二进制,整数在内存中的存储)
算术操作符有:加法+ 减法- 乘法* 除法/ 取余%算术操作符该注意的点:1.除了%操作符之外,其他的操作符都可以作用于整数和浮点数。2.对于/操作符来说,两个数都是整数的话,结果只能是整数,如果其中一个是浮点数的话,那结果也是浮点数。3.%操作符的两个数必须是整数,返回的是整除之后的余数。> :右移操作符注意:移位操作符只能操作整数!在详细了解操作符之前我们要知道移位操作符移动的是二进制的位。对于一个整数四个字节就是32个bit位,二进制也是32个bit位(类如:1 在原创 2024-05-15 22:14:50 · 1786 阅读 · 1 评论 -
C语言实现三子棋游戏(可以改变为四子棋或者多子棋版)
我们首先要给玩家一个菜单,玩家才能选择是否开始游戏。我们需要上来就打印菜单,玩家再选择,所以我们使用do while 循环,在这个循环里需要一个选择语句,所以基本逻辑就是这样:菜单:这里玩家输入1 或者 0 ,就很妙,while循环()里放 input,输入1 就又开始循环,输出菜单,输入0 就结束循环了,退出游戏。原创 2024-04-15 22:43:36 · 1682 阅读 · 0 评论 -
C语言数组详解
数组就是一组相同元素的集合。数组创建中 [] 里不能是变量,但是在c99标准之后就可以了被称为变长数组,但是不常用,而且变长数组不能初始化。创建数组的时候,如果不想指定 [] 的大小,就得初始化,数组的元素个数由初始化内容确认,例如:arr1,他的元素个数就是四个。数组 arr 属于不完全初始化,但是他的元素个数还是10个,只不过剩下的初始化为0了。arr2 和 arr3 要区分,他们的元素个数是不一样的。原创 2024-03-31 16:08:39 · 716 阅读 · 0 评论 -
C语言函数详解之二
这就是递归。原创 2024-03-27 21:54:08 · 566 阅读 · 0 评论 -
C语言函数详解之一
自定义函数和库函数一样需要函数三要素:函数名,返回值类型,函数参数。举一个例子:写一个函数找出两个整数的最大值a : b);int main()//找两个整数的最大值int a = 0;int b = 0;当然函数也可以没有返回值,没有参数,看自己怎么写函数实参和形参,传值调用和传址调用我们再看一个例子:写一个函数交换两个整形变量的内容//写一个函数交换两个变量的值void Swap(int x, int y)//形参x = y;y = tem;原创 2024-03-24 21:18:04 · 729 阅读 · 1 评论 -
C语言循环语句详解
我们看看下面代码输出什么?break;i++;输出:说明什么,说明只要在循环中遇到break,就会停止后面所有的循环,直接终止循环,break在while中用于永久停止循环的。continue介绍int main()int i = 1;continue;//跳过下面所有的代码,调整部分也跳过了i++;这样的代码会输出什么?我们会看到程序进入了死循环,原创 2024-03-22 12:17:08 · 975 阅读 · 1 评论 -
C语言分支语句详解
我们试着输入1:输出星期一,输入2:星期二,输入3:星期三......。这样的代码,如果用if else 语句太复杂,所以我们就可以用新的形式:switch语句。在语法结构if()后面的括号里的表达式为真的时候,再执行下面的语句,否则不执行,else if 同理。这样的形式,这样是无法实现的,编译器会先判断18原创 2024-03-21 19:57:31 · 323 阅读 · 1 评论 -
C语言 getchar 清理缓冲区
getchar获取一个字符,读取成功返回字符的ASCLL码值,失败返回EOF。原创 2024-03-19 13:02:42 · 627 阅读 · 1 评论 -
C语言指针和结构体简单介绍
电脑为了更有效的使用内存,将内存分成了一个个的内存单元,一个内存单元的大小是但是怎么用这些内存呢,电脑为了访问内存的每个单元,就给每个单元编号,就如图所示。原创 2024-03-17 16:03:22 · 436 阅读 · 1 评论 -
C语言常见关键字
define TTT 20//定义常量// 宏参数 宏体int main()// #define 定义常量和宏// 替换// 宏体替换宏参数。原创 2024-03-17 14:42:14 · 355 阅读 · 1 评论 -
C语言变量与常量
/define 的标识符常量。原创 2024-03-06 14:15:21 · 411 阅读 · 1 评论