
C语言
文章平均质量分 64
系统的学习C语言
landscape 南北
C/C++/C#/Uinty3D/Socket编程/C++跨平台开发
展开
-
C/C++的const和static和宏
const:C和C++中从const的区别:C中的const是伪常量,不可以给数组指派内存空间,它占用内存空间可以转换成变量使用C++中const是真常量,它可以给数组指派内存空间,如果是一个const取地址,它会生成一个临时的内存空间但是不影响之前的结果因为它在编译期就确定了值。指向常量的指针和常量指针:首先const修饰常量:修饰一般常量 (一般常量是指简单类型的常量),这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。也就是const int a和 int原创 2021-11-15 11:25:48 · 266 阅读 · 0 评论 -
C语言魔塔
魔塔描述: 本项目使用C语言完成,通过WASD控制人物上下作用移动和怪物和道具进行碰撞后执行相应的操作,根据NPC的提示完成任务。实现的功能:人物的上下左右移动碰撞检测CollisionCB楼层的切换游戏的读档存档NPC对话道具的捡拾和使用怪物列表商店购买道具战斗系统购买系统使用到的技术:使用结构体指针实现继承效果,让所有的结构体继承于基础结构体Base,把父结构体指针作为子结构体的成员属性,从而拿到父结构体的成员函数和属性;使用函数指针实现成员函数,实现碰撞检测原创 2021-11-08 14:18:23 · 5894 阅读 · 1 评论 -
C/C++部分知识总结
C++命名空间:namespaceC++的结构体struct :C中的结构体不能被继承,C++可以继承;C++默认继承权是publicC中的结构体不能有成员函数,C++有成员函数且权限为publicC++函数的增强:C中函数不可以重载,C++函数可以重载函数的缺省是从右往左的函数的缺省实在 声明的时候设置的函数的占位符只有声明不能直接使用占位符也必须进行参数传递函数重载的作用是:同名函数可以实现不同的功能函数重载的条件:同一个作用域参数个数不同参数类型不同参数顺序不同原创 2021-11-06 15:14:27 · 830 阅读 · 0 评论 -
内存池C++
内存池首先一张图将一下内存池的原理在C++中自己写内存池其实就是重载new delete和new[] delete[] 函数;为什么free和malloc不能重载呢?因为它俩是C语言提供的,C++基于C语言的所以是系统级函数。内存相当于一个大类,有一片内存供给内存片内存片就是分配内存的单位,根据分配大小单位大小也不同,有64字节,128字节等每一个内存片有一个头可以用于GC,标记这片内存的大小以及使用情况内存的分配方式 单位内存*分配数量流程如下:这里内存管理器是单例模式,所以一原创 2021-11-05 18:22:21 · 756 阅读 · 0 评论 -
游戏2048(C语言实现)
游戏2048总结游戏逻辑:初始化地图—>打印地图—>移动,旋转—>记录历史—>添加随机数—>判断是否失败知识点:打印移动:一个方向里有相同大小的两个数且中间没有其他数字则可以合并数组中默认下标为-1 当遇到不为0的数时候 index的值由-1改为该不为零的数的下标,然后用标记的该数第二层for循环执行j++ 与下一个数进行比较 如果相同执行加法 把标记的该数+=[i][j] 且 相同数的索引改为-1表示不满足 继续寻找!=0的数 修改其索引执行加原创 2021-08-31 21:57:42 · 719 阅读 · 0 评论 -
C语言学生管理系统
功能:1.登录2.注册3.添加学生4.统计学生信息5.打印学生信息6.查询学生信息7.修改学生信息8.删除学生(逻辑删除)9.退出注意:里面些许功能只提供了接口没有完善密码只做了掩码没有做回退菜单展示图:#ifndef STUDENT_H_#define STUDENT_H_#include <stdio.h>typedef struct tagUser{ char number[50]; char pwd[50]; int power; //原创 2021-08-31 21:42:07 · 363 阅读 · 0 评论 -
C语言扫雷
扫雷要求是可以指定雷的数量,地图的行和列。扫雷有两种思路计算当前格子周围是否有雷计算当前格子是否为雷,如果是周围八个格子加一需要注意的是雷的周围八个格子内如果有雷,不能把雷改变。这里先书写一种简单的方法,即判断当前格子是否为雷!之后会附上一种复杂的优化的代码,为了便于理解我把扫雷投机取巧了一下!如图假设(i,j)为雷,(为了方便设(i,j)为目标位置)则有3种对周围的格子加一情况(当然还有一种只有一种投机取巧的方法,后面会提到):第一种情况:四个角用左上角举例:当目标位置位于左上原创 2021-05-16 00:07:41 · 265 阅读 · 0 评论 -
C语言九九乘法表
九九乘法表所有形式的玩法:右下输出:ixj=i*j; 同一行i递减数字递减for (int i = 1; i <= N1; i++) { for (int k = 1; k <= N1 - i; k++) printf(" "); for (int j = i; j >0 ; j--) // 数字递减 { printf("%d*%d=%-2d ", j, i, i * j); } printf("\n"); }数字递增原创 2021-05-14 22:06:37 · 779 阅读 · 0 评论 -
C语言-字符串
字符串(用" "括起来的字符):“abc” 字符串默认会在结尾 添加一个 \000字符标记\ddd “\078"实际是”\007" 8大于7最高位补0puts函数:输出字符串,自动换行putchar函数:输出单个字符串,可以’a’或者字符变量,不会自动换行printf最重要的输出函数:printf(格式控制串,[输出参数1],[输出参数2],[…]);// %d 用于输出整数 int short// %ld 输出长整形 long// %f 输出 浮点型// %lf原创 2021-05-14 22:01:12 · 235 阅读 · 0 评论 -
C语言main函数和运算符和转义字符
main函数(有且只有一个main函数):第一种(无参函数)int main(){ return 0}第二种(标准写法|有参函数)int main(int argc, char* argv[]){ return 0; // 一般情况下 返回0 表示执行正确}argc 表示 argv的长度(length)即参数的个数argv 表示程序启动时携带的参数int 返回值类型mian 函数类型(int argc ,char * argv[]) 参数列表原创 2021-05-14 21:59:36 · 226 阅读 · 0 评论 -
使用VS2019时候的建议
使用VS2019时候的建议关于VS:提升性能:工具->选项->源代码管理:无新建项目:指定生成->文件位置右键项目->属性->常规->输出目录|中间目录$(SolutionDir)../bin/$(Platform)\$(Configuration)\$(SolutionDir)../temp/$(Platform)\$(Configuration)\$(ProjectName)\最后生成的文件是酱紫的:配置:所有配置|平台:x64:复制输出目原创 2021-05-14 21:52:59 · 358 阅读 · 0 评论