![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
c语言的学习记录
好梦11
这个作者很懒,什么都没留下…
展开
-
【c语言】程序环境和预处理
define name( parament-list ) stuff 其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在stuff中。在编译一个程序的时候我们如果要将一条语句(一组语句)编译或者放弃是很方便的。因为我们有条件 编译指令。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境,它用于实际执行代码。#define 定义标识符。程序的翻译环境和执行环境。#define的宏定义。原创 2024-03-10 16:12:40 · 363 阅读 · 0 评论 -
void和int的区别
nt是一种有符号整数类型,可以表示正数、负数和零,而void是一种特殊的类型,表示没有返回值。这两个是等效的可以替换。原创 2024-02-12 23:54:46 · 660 阅读 · 1 评论 -
c++练气第八重c语音自定义类型
联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联。编译器会把上面的两个声明当成完全不同的两个类型。结构体内存对齐就是拿空间换取时间的做法。相比s1类型s2所占的空间大小要小很多。合至少得有能力保存最大的那个成员)所以我们在设计的时候要对齐。结构体变量的定义和初始化。例如月份可以一一列举。原创 2024-03-04 17:14:20 · 351 阅读 · 1 评论 -
【c语言法宝】字符函数和字符串函数
字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。(注: strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改。strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串 中的位置。如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。目标空间必须有足够的大,能容纳下源字符串的内容。原创 2024-03-04 15:49:26 · 323 阅读 · 1 评论 -
c++练气第四重c语言操作符详解
3. 移位操作符 3.1 左移操作符 移位规则: 左边抛弃、右边补0 + - * / % 左移操作符 >> 右移操作符 注:移位操作符的操作数只能是整数。3.2 右移操作符 移位规则: 首先右移运算分两种: 1. 逻辑移位 左边用0填充,右边丢弃 2. 算术移位 左边用原该值的符号位填充,右边丢弃。接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。1. 操作符的优先级 2. 操作符的结合性 3. 是否控制求值顺序。//实用下标引用操作符。原创 2024-02-21 13:39:45 · 305 阅读 · 0 评论 -
【c语言项目】通讯录一步一步(超详细)
然后我们来想象一下这个一个人的信息,那么我们就要再建立一个结构体来存放他的信息 那么这就是通讯录。首先我们通讯录可以存放各种信息比如 名字 姓名 年龄等等 所以我们需要一个结构体来帮助我们。这边我们用枚举来控制case的进入 因为枚举默认值为0 这样可以增加代码的可读性。这个比较简单 只要利用上面的find函数再把他打印出来就可以。pc->是date的地址,填充0 sizeof填充的字节数。与上面相同 找到联系人后修改就好 注意date 的下标要改。使用后一个date的空间来覆盖前面一个的。原创 2024-03-09 11:03:38 · 368 阅读 · 1 评论 -
【c++修仙】c语言练气第九重动态内存管理
函数的功能是为 num 个大小为 size 的元素开辟一块空间,并且把空间的每个字节初始化为0。与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。如果开辟成功,则返回一个指向开辟好空间的指针。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。但是有时候我们需要的空间大小是在程序运行的时候才能知道的。对动态开辟空间的越界访问。原创 2024-03-10 15:32:30 · 317 阅读 · 0 评论 -
const函数的应用
1. const如果放在*的左边,修饰的是指针指向的内容,保证。2. const如果放在*的右边,修饰的是指针变量本身,保证了。不能修改,但是指针指向的内容,可以通过指针改变。但是指针变量本身的内容可变。原创 2024-02-27 20:27:55 · 373 阅读 · 0 评论 -
【无标题】c++练气第六层c语言结构体
结构体变量访问成员 结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。我们可以看到 s 有成员 name 和 age;那我们如何访问s的成员?结构体指针访问另一个结构体指针。例如怎么描述一个学生。原创 2024-02-27 19:57:52 · 353 阅读 · 0 评论 -
c语言数据的储存
在计算机系统中,数值一律用补码来表示和存储。同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程 是相同的,不需要额外的硬件电路。小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中;三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,(-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;原创 2024-02-26 22:40:36 · 292 阅读 · 1 评论 -
c++练气第7层c语言指针的进阶
如果你把函数的指针(地址)作为参数传递给另一个函数,当 这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调 用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参数,返回 值类型为void。指向函数指针数组的指针是一个 指针 指针指向一个 数组 ,数组的元素都是 函数指针;首先,能给存储地址,就要求pfun1或者pfun2是指针,那哪个是指针?原创 2024-03-01 07:56:19 · 362 阅读 · 1 评论 -
【修仙法宝】c语言调试技巧
F9 创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。F11 逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最 长用的)。CTRL + F5 开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。F10 逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。比如一个无限循环的代码在release环境下会,变成有限(这只是一个优化例子)。原创 2024-02-27 20:12:23 · 353 阅读 · 0 评论 -
【c语言小游戏】扫雷 一步一步教你做
ROW LOSS初始化棋牌 为了防止越界访问我们设置11 11 的棋盘 实际为9×9。findmine函数是查找周围的雷 九宫阁上其他八个的位置 减去字符数得到数字。接下来我们打印这个棋盘 为了方便寻找我们在棋盘上打印数字方便输入坐标。注意不要把do while循环放在scanf下面不然会死循环。因为我们要一个拿来布置雷一个拿来给玩游戏的人看 (看不到雷)我们要判断两个 函数所以形参 要两个数组。时间戳空指针 强制类型转换无符号整数。为了让雷随机布置我们用rand函数。这样我们基本的逻辑就已经完成。原创 2024-03-07 23:16:55 · 371 阅读 · 0 评论 -
【c语言】二分查找
那么这里为什么不是头加尾呢 因为如果两个值过大的话容易溢出 所以left+(right-left)/2和头尾相加除以2是一样的。用sizeof函数来求出数组的大小 随后来判断目标值与mid下标的值的大小。头加尾,找到中间的数 随后判断中间的数是大了还是小了。二分查找总的一个概念是。原创 2024-03-09 16:32:11 · 353 阅读 · 1 评论 -
c语言小游戏三子棋
函数通过遍历整个棋盘,检查每个元素是否为空格。如果在遍历过程中遇到任何一个空格,则立即返回0,表示棋盘未满;只有当整个棋盘都被非空格字符填充时,才会执行完循环,并最终返回1,表示棋盘已满。if的条件是因为更好的看到坐标 下棋 所以我们没有从0下标开始而是从1.打印这个棋盘 这里要注意的是棋盘是怎么打印的 行打印| 列打印___遍历这个数组初始化为空格 这里的ROW 与COL可以用。我们用二维数组来表示一个棋盘 首先初始化二维数组。接下来我们处理玩家下棋与电脑下棋的函数表达。横相等 列相等 斜线相等。原创 2024-03-06 21:52:53 · 347 阅读 · 1 评论 -
【c语言】文件操作
文件使用方式 含义 如果指定文件不存在 “r”(只读) 为了输入数据,打开一个已经存在的文本文件 出错 “w”(只写) 为了输出数据,打开一个文本文件 建立一个新的文件 “a”(追加) 向文本文件尾添加数据 建立一个新的文件。可以使pf指向某个文件的文件信息区(是一个结构体变 量)。通过该文件信息区中的信息就能够访问该文件。一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀 例如: c:\code\test.txt。打开文件之后要关闭文件。原创 2024-03-10 15:48:45 · 346 阅读 · 0 评论 -
c++练气第五重c语言指针初阶
指针理解的2个要点: 1. 指针是内存中一个最小单元的编号,也就是地址 2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。(取地址操作符)取出变量的内存起始地址,把地址可以存放到一个变量中,这个 变量就是指针变量。ppa通过对ppa中的地址进行解引用,这样找到的是pa,*ppa其实访问的就是pa.指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)//p存放的是数组首元素的地址。那指针类型的意义是什么?原创 2024-02-21 15:46:39 · 388 阅读 · 0 评论 -
【c语言】冒泡排序
比如第一个 与相邻的后面一个进行比较如果大于后一位数则与他交互位置。冒泡排序的基本概念是 先在数组里拿出一个值。i<sz-1 因为不用和自身比较;原创 2024-03-09 16:38:51 · 330 阅读 · 1 评论 -
c++练气第三重c语言数组
二维数组如果有初始化,行可以省略,列不能省略。最前面是类型 []里是数组大小。数组是使用下标来访问的,下标是从。数组的大小可以通过计算得到。数组在内存中是连续存放的。二维数组也是连续储存的。原创 2024-02-13 16:54:41 · 337 阅读 · 1 评论 -
c++练气练气第二层函数运用
x和y两个形参 在main函数 num1 , mum2 两个实参。可以看到我们直接调用自定函数得出了最大值。举一个例子,这是一个两个数比较找出最大值,可看到我们在main 函数上定义了一个自定函数。,运用到你的代码中。试想一下如果都是给定函数,那需要程序员做什么呢。这个函数输出结果是hh 可以看到层层调用了函数。简单来说实参实真实的值,而形参只在函数中有效。递归有点类似于循环,但是递归要满足两个条件。函数是能自己设计的函数(当然也有库函数)函数是可以相互调用的但是不能嵌套。但是注意的是函数不能嵌套。原创 2024-02-12 23:40:25 · 326 阅读 · 1 评论