
C语言
文章平均质量分 71
C语言学习记录
牧濑红莉栖cc
不仅要发现问题,还要解决问题!
展开
-
C语言 枚举 · 联合体
enum Day {以上定义的都是枚举类型。括号中内容是枚举的可能取值,也叫枚举常量。这些取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。//联合体的声明 union Un {char c;int i;};//联合体的定义 union Un un;//计算变量大小 printf("%d\n" , sizeof(un));}...原创 2022-08-27 11:04:00 · 430 阅读 · 0 评论 -
C语言 结构体 · 位段
有了结构体类型,那么任何定义变量,其实很简单。举例一int x;int y;} p1;//声明结构体类型的时候,定义变量p1 int main() {//定义结构体变量p2 struct Point p3 = {1 , 2 };//定义变量的同时给变量赋值 return 0;}举例二//姓名 int age;//年龄 };//初始化 return 0;}举例三int x;int y;} p1;//声明结构体同时定义变量p1 struct Node {int data;...原创 2022-08-27 11:02:09 · 912 阅读 · 1 评论 -
C语言 字符分类函数 · 字符转换函数 · 内存函数
memcpy函数可以拷贝不重叠内存,也可以拷贝重叠内存。但是拷贝重叠内存会出问题,比如自己拷贝自己,会丢失数据。原创 2022-08-24 10:51:01 · 180 阅读 · 0 评论 -
C语言 字符函数 · 字符串函数 介绍
C语言中对字符和字符串的处理很频繁,但是C语言本身没有字符串类型,字符串通常放在常量字符串中或者字符数组中。字符串常量适用于那些对它不做修改的字符串函数。拷贝 num 个字符从源字符串到目标空间。如果源字符串的长度小于 num,则拷贝完源字符串之后,在目标的后边追加 0,直到 num 个。如果拷贝的字符长度大于source容量,则会破坏dest字符串后面的\0,要避免这种情况发生。原创 2022-08-23 15:21:34 · 639 阅读 · 0 评论 -
C语音 杨氏矩阵 · 左旋字符串 · 判断字符串是否旋转
解法先把第一个元素取出,然后后面的元素依次往前移动一位,最后把第一个元素放在最后的位置上。解法杨氏矩阵其实也是二维数组,通过对比右上角或者左下角的数据。一次消除一行或者一列。先把要左旋转的字符串逆序,然后把不需要旋转的字符串逆序,最后把整体字符串逆序。可以记录指针走到哪里,那里就是数组元素下标。...原创 2022-07-17 09:51:49 · 137 阅读 · 0 评论 -
C语言 指针和数组笔试题
字符数组二维数组sizeof ( ),并不会把表达式的数据结果保存下来,也不会去真正访问内存区域。输出结果:数组名的意义:文字+图解:仔细看,二维数组初始化内容是逗号表达式,逗号表达式末尾元素才是二维数组中的数据。p = a[0],相当于让指针 p 指向二维数组中的第一行数据p[0],相当于 p+0,指针 p 没有发生改变。按照 %d 形式打印,结果为 1。文字+图解:前三行代码执行后,内存情况:文字+图解:执行完前三段代码,内存情况如图:创建二...原创 2022-07-11 16:49:03 · 206 阅读 · 0 评论 -
C语言 指针进阶知识 · 有点难加油~
本文将探讨指针的高级内容。在指针的类型中,我们知道有一种指针类型为字符指针 char*;一般使用:另一种使用方式:代码 char* pstr = “hello~”;很容易让人误解,以为是字符串 hello~ 放到字符指针 pstr 中,但实际上是把字符串 hello~ 的首字符地址放在 pstr 中。上面代码的意思是把一个常量字符串的首字符 h 的地址存放在指针变量 pstr 中。面试题:输出结果是:解析:str1 和 str2 都是数组,定义数组的时候就已经在内存中开辟各自的空间,虽然它们存储原创 2022-07-09 16:04:30 · 320 阅读 · 0 评论 -
C语言 回调函数 · qsort函数使用 · 采用冒泡和回调方式模拟实现qsort
是不是一脸懵?没事,先把回调函数的定义放在一边,我们看一下冒泡排序吧还记得冒泡排序吗?冒泡排序是比较基础的排序方法。其中有个弊端就是,设计出来只能对一种同类型的数据排序。有没有一种方法,能让我对 int 类型数据排序后,再去对 double 类型数据排序,甚至对结构体类型数据排序呢?有,这就是要介绍的 qsort函数,它也算是回调函数的一种。它一共有四个参数,返回类型是 void。解析:通俗来说:我 qsort 函数什么类型都能排序,但是你要把要排序的数组arr告诉我,数组元素有几个告诉我,数组原创 2022-07-09 16:00:11 · 389 阅读 · 0 评论 -
C语言 简单实现计算器功能 ·函数指针数组实现计算器
函数指针数组实现计算器功能:利用函数指针数组把计算器方法(封装?)在一个数组中调用更加简单,代码更加简洁~原创 2022-07-08 21:24:57 · 1664 阅读 · 0 评论 -
C语言 (浮点型)数据的存储
c语言浮点数在内存中的存储一、浮点数二、浮点数存储三、浮点数在内存的表示方式四、IEEE 754 对 有效数字M和指数E 的特别规定:一(有效数字M):二(指数E),情况有点复杂:三(指数E不全为0 或者 不全为1):*了解. 四(指数E全为0 或 指数E全为1):五、解释开头的题目:一、浮点数上一节 我们讲解了C语言中整型数据是如何在内存中存储的。这节我们讲解C语言浮点型数据在内存中存储方式。常见的浮点数例如:3.1415926 1E10浮点数家族包括:float、double、long原创 2022-04-15 17:26:02 · 2426 阅读 · 2 评论 -
C语言 (整型)数据的存储
C语言 整型数据的存储一、数据类型介绍二、类型的基本归类整型家族:浮点数家族:构造类型:指针类型:空类型:三、整型在内存中的存储3.1 原码、反码、补码3.2 对于整型来说,数据在内存中存储的格式是补码。四、大小端介绍五、来亿点练习题①练习题②练习题③练习题④请问以下代码输出结果⑤以下代码输出结果是?⑥请问代码输出结果是?⑦请问以下代码输出结果是什么?一、数据类型介绍前面我们已经学习了基本的内置类型:char //字符数据类型short //短整型int //整型long //长原创 2022-03-30 23:50:56 · 2332 阅读 · 0 评论 -
C语言 实用调试技巧(Visual Studio编辑器)
C语言 实用调试技巧一、什么是bug?二、调试是什么?有多重要?调试是什么?调试的基本步骤:三、Debug 和 Release 的介绍四、windows 环境调试介绍1.调试环境准备2. 学会快捷键3. 调试的时候,查看程序当前信息4.多多动手,尝试调试,才能有进步。五、一些调试的实例,以及调试步骤实例一调试步骤:实例二栈内存·扩展知识:一、什么是bug?程序错误(bug),是程序设计中的术语。是指在软件运行过程中,因为程序本身有错误而造成的功能不正常、死机、数据丢失等现象。1947年,人们发现了第一原创 2022-01-20 16:25:11 · 1270 阅读 · 0 评论 -
C语言 结构体基本操作
结构体基本操作一、结构体的声明结构的基础知识结构的声明结构成员的类型二、结构体变量的定义和初始化三、结构体成员的访问四、结构体传参一、结构体的声明结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明struct tag{ member-list;}variable-list;如果是描述一个学生:typedef struct stu{ char name[20]; //名字 int age; //年龄 char sex[5]; /原创 2022-01-14 16:08:12 · 330 阅读 · 0 评论 -
C语言 指针基本概念
指针基本概念简介:一、指针是什么?二、指针和指针类型三、野指针四、指针的运算五、指针和数组六、二级指针七、指针数组一、指针是什么?在计算机科学中,指针是编程语言中的一个对象。可以利用地址,找到它指向存在电脑存储器中另一个地方的值。由于通过地址能找到变量单元,所以可以简单的说,地址指向该变量单元。因此,将地址形象化的称为指针。可以通过指针找到以它为地址的内存单元。我们可以这样理解:内存:存储在硬盘中的数据。指针:是一个可以找到该数据的地址,由变量存储这个地址。对应到代码中:先定义一原创 2022-01-13 17:39:02 · 577 阅读 · 0 评论 -
C语言 操作符学习
一、操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员二、算术操作符: + - * / %除了 % 操作符外,其他的几个操作符可以作用于整数和浮点数。对于 / 操作符,如果两个操作符都是整数,就执行整数除法。而只要有浮点数,就执行浮点数除法。==%==操作符的两个操作符必须为整数。返回的是整除之后的余数。三、移位操作符 << 左移操作符 >> 右移原创 2021-11-27 11:30:24 · 643 阅读 · 0 评论 -
C语言 实现三子棋 井字棋
使用C语言实现三子棋,一共分三个文件。实现效果如图:首先打印个菜单供用户选择选择1进入游戏键盘输入玩家下棋坐标,电脑会自动下棋一共三种结局。玩家赢;电脑赢;平局。玩家赢:电脑赢:平局:代码展示:test.c文件#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"void menu() { printf("****************************\n"); printf("***原创 2021-10-30 11:39:04 · 1372 阅读 · 0 评论 -
C语言 数组实现 扫雷游戏
游戏界面展示:一开始菜单界面:选择 0 退出程序:选择 1 开始游戏:输入要排查雷的坐标:会根据周围雷的个数,该坐标显示数字。如果周围没有雷,输入的坐标显示 0有雷,则显示周围雷的个数如果输入坐标位置有雷,则被炸死游戏结束~代码展示:一共分三个文件。测试文件 test.c 。头文件game.h 。游戏功能文件game.c 。test.c#define _CRT_SECURE_NO_WARNINGS 1#include "game.h"//优化//1.如果不是雷,原创 2021-10-30 11:37:10 · 243 阅读 · 0 评论 -
C语言 数组(一维数组 · 二维数组)
一维数组的创建和初始化数组的创建:数组是一组相同类型元素的集合。数组的创建方式:type_t arr_name [const_n];// type_t 指数组的元素类型// arr_name 数组的名称// const_n 这是一个常量表达式,用来指定数组的大小数组创建的实例: int arr01[10]; int i = 10; int arr02[i]; //数组是否可以正常创建? float arr03[3]; double a04[50];注:数组创建的时候原创 2021-10-16 11:14:43 · 775 阅读 · 0 评论 -
C语言 函数 (库函数 · 自定义函数 · 函数参数 · 函数调用 · 嵌套调用链式访问 · 递归)
一、函数是什么?数学中有函数的概念,C语言中也有函数的概念。但是你了解C语言中的函数吗?在计算机科学中,子程序是一个大型程序中的某个部分代码,由一个或者多个语句块组成。它负责完成某项特定任务,而且相比于其他代码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。C语言中函数的分类:库函数和自定义函数。二、...原创 2021-10-13 16:36:07 · 629 阅读 · 0 评论 -
C语言 · goto语句 · 关机小程序
一、goto 语句:C语言中提供了可以滥用的 goto 语句。从理论上,goto 语句是可以被代替的,不用 goto 语句也是可以写出代码。但是在特定情况下,还是有 goto 语句的独特之处,就是能一次性跳出多个嵌套循环。break 就达不到这个效果,它只能跳出本次(一次)循环。for(...) for(...) { for(...) { if(disaster) goto error; //跳出多层循环,直接跳到 error 标原创 2021-09-25 23:53:13 · 219 阅读 · 0 评论 -
C语言 · 打印100~200之间的 素数
素数等于质数即:只能被1和它本身整除方法一:使用嵌套 for 循环 //方法一: //第一个for循环,创建100-200之间的数据 //第二个for循环,创建2到i-1的数据 //然后取余,被整除就不是素数。 //到最后一个j++会导致j==i,出现这个情况,该数据就是素数。 int i = 0; for (i = 100; i <= 200; i++) { int j = 0; for (j = 2; j < i; j++) { if (i % j == 0原创 2021-09-25 23:30:28 · 348 阅读 · 0 评论 -
C语言 · 打印1000到2000之间的闰年
打印闰年知道两个条件即可:可以被4整除,但是不能被100整除。可以被400整除。 //判断闰年 //条件一:可以被4整除,但是不能被100整除。 //条件二:可以被400整除。 int year = 0; int count = 0; //计算闰年个数 for (year = 1000; year <= 2000; year++) { if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))原创 2021-09-25 23:05:56 · 267 阅读 · 0 评论 -
C语言 · 求两个数的最大公约数
方式一:辗转相除法如果 m 和 n 取模为 t(不为零),那么把 n 的值赋值给 m,把 t 的值赋值给 n,然后再进行一次循环,直到取模为零,t 被赋值为零,循环结束。 int m = 0; int n = 0; int t = 0; scanf("%d %d", &m, &n); //如果m和n取模为t, //那么把n的值赋值给m,把t的值赋值给n, //然后再进行一次循环,直到取模为零,t被赋值为零,循环结束。 while (t=m%n) { m = n原创 2021-09-25 23:01:55 · 774 阅读 · 0 评论 -
循环语句 · while · for · do while
while 循环语句我们已经掌握了 if 语句:if (条件) { 语句;}当条件满足的时候,会执行 if 后面的代码,否则就不执行。但是这个 if 语句只会执行一次。不过,我们生活中有很多事情是要重复很多次的。那我们在代码中是如何实现的呢?C语言给我们引入了:while 语句,可以实现循环。。while 语句的结构:while (表达式) { 循环语句;}我们看 while 语句的结构是和 if 语句很相似的,相似但不是完全相似。if 中的括号,如果判断为真就执行一次语句。原创 2021-09-22 19:54:46 · 267 阅读 · 0 评论 -
分支语句 · if语句 · switch语句
分支语句ifswitch语句的定义C语言中由一个分号==;==隔开的,就是一条语句,比如:> printf("Hello World !");> 3 + 5;分支语句(选择结构)如果你好好学习,将来就进好公司敲代码。如果你不好好学习,将来就进小公司敲代码。这就是选择!if 语句if 语句的结构表达式的结果如果是真,就执行语句;为假就不执行语句。如何判断真假呢?0 为假,非 0 为真。if (表达式) 语句;if (表达式) 语句;else原创 2021-06-15 01:36:43 · 248 阅读 · 1 评论 -
C语言初阶知识简述
本文仅仅对C语言的基础知识大概的讲述。后期会有详细讲解。目录:什么是C语言第一个C语言程序数据类型变量、常量字符串、转义字符、注释选择语句循环语句函数数组操作符常见关键字define 定义常量和宏指针结构体一、什么是C语言?C语言是一门通用的 计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易方式编译、处理低级 存储器、产生少量机器码(代码)以及不需要任何运行环境支持便可以运行的编程语言。C语言同时也有良好的跨平台性,以一个标准规格写出的C.原创 2021-06-07 17:52:41 · 211 阅读 · 0 评论 -
Gitee注册 和 提交代码
目录:一、注册Gitee(码云)二、创建仓库三、绑定邮箱四、删除仓库五、本地克隆仓库六、本地代码提交到 gitee一、注册Gitee(码云)二、创建仓库三、绑定邮箱如果注册的时候没有用上邮箱,这个时候需要绑定邮箱,为后来本地仓库发送给 git 做准备。四、删除仓库在个人主页上找到 Watches。点击该仓库名称 eg:开发。找到管理,然后便可找到删除仓库。五、本地克隆仓库需要先自行安装两个软件,先后顺序不能变。安装好后,在 gitee 仓库中复制HTTPS原创 2021-04-18 23:18:20 · 693 阅读 · 0 评论 -
vs2019的安装 和 vs2019 Monokai主题的配置
安装教程:https://www.bilibili.com/video/BV17p4y1h7yR修改Monokai主题教程:https://www.jeddd.com/article/visual-studio-sublime-theme.html安装该主题效果如下:总结:没有难度,难到你的可能是你的网络~原创 2021-04-18 23:04:08 · 8972 阅读 · 0 评论