- 博客(10)
- 收藏
- 关注
原创 编译和链接的理解
程序同时也可以使用静态 (static) 内存,存储于静态内存中的变量在程序的整个执行过程一直保留它们的值。当宏参数在宏的定义中出现超过一次的时候,如果宏参数影响本身的值,那么后续在使用这个宏的时候就可能出现不可预测的后果。在引言的地方,我提到了 #include 头文件包含属于预编译的过程,它其实也是进行了相关的文本替换。翻译环境即我们日常使用编译器,将一个 " test.c " 的文件最终变成一个 " text.exe " 的可执行文件的一个过程。操作系统正常终止 main 函数,也有可能是意外终止。
2024-04-22 00:39:19 281
原创 文件操作的理解
⽂件读取结束的判定 7.1 被错误使⽤的 feof 牢记:在⽂件读取过程中,不能⽤feof函数的返回值直接来判断⽂件的是否结束。1.“r” 以"读"的方式打开一个文本文件(只能读)。12.“ab+” 在"ab"的基础下增加了"读"。4.“rb+” 在"rb"的基础下增加了"写"。7.“wb” 以"写"的方式创建一个二进制文件。8.“wb+” 在"wb"的基础下增加了"读"。10.“a+” 在"a"的基础下增加了"读"。2.“r+” 在"r"的基础下增加了"写"。6.“w+” 在"w"的基础下增加了"读"。
2024-04-22 00:35:05 247
原创 结构体的理解
而后直接在声明结构体花括号后面直接创建,//这种方式创建的结构体属于全局变量这个时候就相当于直接创建了两个该类型结构的全局变量stu1和stu22、定义方式二用struct + 结构体类型名 + 结构体变量名例如:struct student s;示例:3、用typedef重定义类型:此时的Student是一个该结构体的类型,可以理解为跟int、double一样,用于声明变量(而事实上类型的声明本质上是决定访问地址的多少的问题)对于结构体的初始化使用{}大括号。
2024-04-14 16:23:38 1548 1
原创 整数和浮点数在内存的存储方式
大小端对于一个整数,我们的书写习惯是从左到右依次为从高位到地位,10000。对于一个字节,从左到右为从低地址到高地址,如果一个数据只在一个字节内存储,数据的存储和我们的书写习惯相似,即低地址存放高位,高地址存放低位,但如果数据超过一个字节呢?这就涉及到了大小端字节序,对于需要内存大小超过一个字节的数据,如果低地址存放高位数据,高地址存放低位数据,就是大端字节序;如果低地址存放低位数据,高地址存放高位数据,就是小端字节序。
2024-04-09 22:26:28 359 1
原创 c语言strncpy,strncat,strncmp函数函数
该函数的功能是比较str1和str2指向的两个字符串的前num个字节的字符。如果str1>str2,返回一个大于0的数字,如果str1<str2,返回一个小于0的数字,如果str1==str2,返回0。第一个参数是一个函数指针,指向一个字符串,第二个函数也是一个字符指针,也指向一个字符串,第三个参数是一个整型,表示要比较的字符的个数,单位是字节。第一个参数是一个字符指针,指向目的字符串,第二个参数是一个字符指针,指向源头字符串,第三个参数是一个整型,表示要追加的字符的数量,单位是字节。
2024-04-08 23:34:01 1457
原创 指针的基本认识
指针是 C 语言中一个非常重要的概念。指针是一个特殊的变量,它存储了另一个变量的内存地址。通过指针,程序可以间接地访问和操作这些变量。那么我们可以将指针看作一个盒子,具有装东西的功能,只不过里面装的是变量的地址,当我们想要去修改这些变量的值时,我们可以打开盒子,找到变量的地址进行修改,这方便了我们去寻找这些变量。那么指针有哪些类型呢。例一(1)int*ptr;等等。
2024-03-25 22:18:40 391 1
原创 扫雷游戏的基础实现
到了这一步,就可以开始排雷了,继续分析,我们在棋盘上布置了雷,棋盘上雷的信息(1)和⾮雷的信息(0),假设我们排查了某 ⼀个位置后,这个坐标处不是雷,这个坐标的周围有1个雷,那我们需要将排查出的雷的数量信息记录 存储,并打印出来,作为排雷的重要参考信息的。这样就互不⼲扰了,把雷布置到 mine数组,在mine数组中排查雷,排查出的数据存放在show数组,并且打印show数组的信息给后期排查参考。此时要结束游戏,说明我排查了n*n-雷的数,可以定义一个int 类型的整型,每次排雷后让它自增,在用if语句。
2024-01-10 18:41:43 377
原创 C语言分支循环语句
如果表达的值与所有的case标签的值都不匹配怎么办?程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?你可以在语句列表中增加一条default子句,把下面的标签 default:写在任何一个case标签可以出现的位置。当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。
2023-12-03 17:41:01 366 1
原创 我的第一篇博客
自我介绍,因为专业的需要,我开始了c语言的学习。我想要把c语言掌握已帮助我后续对其他语言学习有所帮助。编程目标,熟练掌握c语言。能独立写出一些复杂代码,对算法有充分了解。c语言是一种很有意思的语言,我想要从它的底层开始学习。一周大概会学习c语言20个小时。
2023-11-20 10:42:43 26 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人