
C语言
文章平均质量分 83
有关C语言的讲解
uyeonashi
好像起风了~
展开
-
C语言 字符串函数使用
strlen统计的是‘/0’之前的字符个数,到‘/0’就结束了。注意 函数的返回值为,是⽆符号的使用:在使用时需要包含头文件<string.h>原创 2024-03-22 00:17:12 · 1748 阅读 · 1 评论 -
C语言——操作符详解
如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符是左结合,还是右结合,决定执⾏顺序。⼤部分运算符是左结合(从左到右执⾏),少数运算符是右结合(从右到左执⾏),⽐如赋值运算符( = ):所有的整数在内存中都是以补码进行存储的,我们的左右移操作符都是对补码进行直接操作的;但是到底是逻辑右移还是算术右移,这个标准并没有确定,是取决于编译器的。进行按位与,规则是:对应二进制位有0就是0,两个同时为1才为1。进行按位或,规则是:对应二进制位有1就是1,两个同时为0才为0。原创 2024-03-24 20:17:46 · 2216 阅读 · 3 评论 -
二叉树【数据结构】
通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。2. 若规定根结点的层数为 1 ,则 深度为 h 的二叉树的最大结点数是2^h - 1。子孙:以某结点为根的子树中任一结点都称为该结点的子孙。:若一个结点含有子结点,则这个结点称为其子结点的父结点;:一个结点含有的子树的根结点称为该结点的子结点;原创 2024-06-19 21:19:45 · 675 阅读 · 0 评论 -
C语言【数据结构】--栈
要实现一个栈,我们先梳理一下基本结构,我们还是分两个源文件 “text.c(测试),Stack.c(函数的定义) ”和一个头文件(Stack.h)函数的声明.单链表的尾部作为栈底,头部作为栈顶,方便插入和删除(进栈头插,出栈头删),头指针和栈顶指针 top 合二为一。数组的首元素作为栈底,另外一端作为栈顶,同时定义一个变量 top 来记录栈顶元素在数组中的位置。当然,也会存在一些问题,就是每次空间不够,要重新开辟空间,可能会造成一些内存浪费。:栈的插入操作叫做进栈/压栈/入栈,:栈的删除操作叫做出栈,原创 2024-05-22 23:34:03 · 768 阅读 · 1 评论 -
C语言--【数据结构】顺序表
顺序表是线性表的一种线性表(linear list)是n个。线性表是⼀种在实际中⼴泛使⽤的数据结构,常⻅的线性表:顺序表、链表、栈、队列、字符串...线性表在上是线性结构,也就说是⼀条直线。但是在上并的,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2024-05-20 21:52:53 · 851 阅读 · 0 评论 -
C语言--带环链表问题
继续学习。原创 2024-05-05 22:48:06 · 912 阅读 · 2 评论 -
C语言——预处理详解
C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义举个栗子:基本语法:#define name stuff#define reg register //为 register这个关键字,创建⼀个简短的名字;) //⽤更形象的符号来替换⼀种实现。原创 2024-05-11 00:16:34 · 895 阅读 · 0 评论 -
C语言--贪吃蛇小游戏
一、Win32API介绍一、Win32API介绍在实现贪吃蛇前我们下了解一下会使⽤到的⼀些Win32API知识Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤ 的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程序达到开启 视窗、描绘图形、使⽤周边设备等⽬的,由于这些函数服务的对象是应⽤程(Application),所以便 称之为ApplicationProgrammingInterface,简称。W1.2控制台程序。原创 2024-04-27 01:49:21 · 835 阅读 · 6 评论 -
C语言--文件操作
磁盘(硬盘)上的⽂件是⽂件。程序⽂件、数据⽂件(从⽂件功能的⻆度来分类 的)。程序文件程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows 环境后缀为.exe)。数据文件⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或 者输出内容的⽂件本文主要讨论数据文件。根据数据的组织形式,数据⽂件被称为文本文件或者二进制文件1)fputc(): 用于向文件中写入一个字符。c: 要写入的字符的ASCII码。原创 2024-04-21 22:19:31 · 845 阅读 · 7 评论 -
C语言--程序的编译和链接
一、翻译环境和运行环境在ANSIC的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码。二、翻译环境那翻译环境是怎么将源代码转换为可执⾏的机器指令的呢?这⾥我们就得展开开讲解⼀下翻译环境所 做的事情。其实翻译环境是由编译和链接两个⼤的过程组成的,⽽编译⼜可以分解成:预处理(有些书也叫预编 译)、编译、汇编三个过程⼀个C语⾔的项⽬中可能有多个。原创 2024-04-27 21:06:39 · 983 阅读 · 1 评论 -
C语言--动态内存管理
我们已经掌握的内存开辟方式:// 在栈空间上开辟四个字节// 在栈空间上开辟 10 个字节的连续空间但是上述的开辟空间的⽅式有两个特点:• 空间开辟⼤⼩是固定的。• 数组在申明的时候,必须指定数组的⻓度,数组空间⼀旦确定了⼤⼩不能调整但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知 道,那数组的编译时开辟空间的⽅式就不能满⾜了。C语⾔引⼊了动态内存开辟,就是为了让程序员可以灵活申请和释放空间。原创 2024-04-07 00:27:47 · 832 阅读 · 2 评论 -
C语言--枚举和联合体
枚举顾名思义就是⼀⼀列举,把可能的取值⼀⼀列举。枚举与结构体的定义类似举个栗子:这些可能取值都是有值的,默认从0开始,依次递增1当然了,在声明枚举类型的时候也可以赋初值。原创 2024-04-06 00:12:35 · 549 阅读 · 2 评论 -
C语言——结构体
位段的声明和结构是类似的,有两个不同:(1)位段的成员必须是 int 、 unsigned int 或 signed int ,在C99中位段成员的类型也可以 选择其他类型(2)位段的成员名后边有⼀个冒号和⼀个数字举个栗子。原创 2024-04-04 00:38:13 · 980 阅读 · 4 评论 -
C语言-数据在内存中的存储
大端字节序存储:是 指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处小端字节序存储:是 指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处为什么会有大小端之分呢?原创 2024-03-28 22:22:03 · 1649 阅读 · 3 评论 -
C语言 内存函数
函数定义:void * memcpy ( void * destination, const void * source, size_t num );这里的count是整个需要拷贝的元素大小函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置这个函数在遇到 '\0' 的时候并不会停下来。原创 2024-03-23 00:23:11 · 609 阅读 · 3 评论 -
C语言分支循环语句
在C语言中,分支和循环语句是控制程序流程的重要工具。通过使用这些语句,我们可以让程序根据不同的条件执行不同的代码块,或者重复执行某个任务直到满足特定条件。本文将介绍C语言中常用的分支和循环语句。分支语句用于根据条件判断来选择执行不同的代码块。C语言中有两种主要的分支语句:if语句和switch语句。if语句用于根据一个条件表达式的真假来决定是否执行某个代码块。其基本语法如下:我们还可以使用else if来检查多个条件:switch。原创 2024-01-24 23:49:32 · 427 阅读 · 0 评论 -
一道有趣的题
在VS2022、X86、Debug的环境下,编译器不做任何优化的话,下⾯代码执⾏的结果是啥?答案是:程序运行,死循环的打印“hehe”。这里可能会有疑问,这里不是会越界吗,怎么死循环的打印“hehe”呢?我们可以通过调试来观察一下:通过调试我们可以看出,当我们把arr[i]改的时候i也变了,因为arr[12]的地址和i的地址是一样的,所以每次一道arr[12]的时候i就被改为0了,就永远不可能跳出这个循环。我们再看一张图片所以说这道题很巧妙,但凡换一种编译器,或者换一原创 2024-03-07 13:11:42 · 188 阅读 · 0 评论 -
vs中scanf被忽略的原因和解决方法
如果说没有权限无法更改可以先将它拖到桌面或其他文件夹,拷贝进去后在将其拖回来,这样就不要每次打开vs都输入一遍了。大家在使用的时候可能会遇到这个问题,这是因为vs认为这个函数不安全,解决这个问题也很简单。当然了,每次写代码前都加一次这个有些麻烦,就可以打开vs安装路径找到这个文件,把。这中方法不推荐使用,因为它没有良好的移植性,在其它平台很可能会报错。这里就有写到可以使用这串字符来解决,原创 2024-01-27 23:07:08 · 339 阅读 · 1 评论