自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 c语言学习3(一些函数)

隐式声明:当调用函数时没有定义,编译器会猜测函数的格式,参数列表会根据调用时提供的数据(实参)猜测,返回值会猜成int类型。注意:如果不需要参数,形参要写void,空参表示任何参数都可以调用函数,容易产生误会。 int isalnum(int c); 功能:当以是数字、字母字符返回真 int isalpha(int c); 功能:当c是字母时返回真 int isdigit(int c); 功能:当c是数字字符时返回真

2020-09-12 15:25:07 123 1

原创 c语言学习8(结构体、联合、枚举,fopen,文件读写,文件指针操作,删除、重命名函数)

如何计算结构体的字节数:结构体成员的顺序会影响它的总字节数,在设计结构体时如果成员的顺序合理可以大大节约内存。内存对齐:假定第一个成员从零地址开始,存储每个成员地址编号必须能被它的字节数整除,如果不能整除则填充空字节。内存补齐:结构体的总字节数,必须是它最大成员的整数倍,如果不是则在末尾填充空字节。在Linux系统下计算结构体的对齐和补齐时如果成员的字节数超过4字节则按4字节计算,window系统按实际情况计算。#pragma pack(n) 设置补齐、对齐时的最大字节数,n <= 默认

2020-09-12 15:23:12 155

原创 C语言学习7(输入\输出缓冲区 字符串函数 )

输出缓冲区:程序输入的数据并不能立即显示在屏幕上,而是先存储在输出缓冲区中,满足一些条件后才显示出来。1、遇到\n后2、遇到输入语句3、当输出缓冲区满4K4、当程序结束5、手动刷新 fflsuh(stdout)缓冲区机制可以提高数据的读写速度。输入缓冲区:程序并不立即获取到屏幕上输入的数据,而按下回车键后程序才从输入缓冲区中读取数据。1、当读取整型或浮点型数据时,而缓冲区中的数据是字母或符号,此时将读取失败,并且会影响接收下来所有的数据读取。2、fgets可以指定读取size-1字符,

2020-09-12 15:13:40 354 1

原创 c语言学习6(堆内存管理,内存泄漏,内存碎片,内存清理)

#include <stdlib.h> void *malloc(size_t size); 功能:从堆内存中申请size个字节的内存,申请内存中存储是什么内容不确定。 返回值:成功返回申请到的内存的首地址,失败返回NULL注意:void* 在c++编译中不能自动转换成其他类型的指针,如果想让代码在c++中兼容需要强制类型转换。int* p=(int*)malloc(4); void free(void *ptr); 功能:释放一块堆内存,可以释

2020-09-12 15:07:17 934

原创 C语言学习5(指针、指针的运算、const与指针)

空指针:值为NULL的指针变量叫空指针,如果进行解引用就会产生段错误。野指针:指向不确定的内存空间。解引用野指针的后果:1、段错误2、脏数据3、一切正常野指针比空指针的危害更严重,因它无法判断出来,而且可能是隐藏型的错误短时间内不暴露出来。指针的运算:指针变量中存储的是整数,理论上整型数据可以使用的运算符它都可以用,但大多数运算都无意义的。指针+n <=> 宽度n+指针 前进n个元素指针-n <=> 指针-宽度n 后退n个元素指针-指针 <=>

2020-09-12 11:41:22 62

原创 c语言学习4(进程映像、变量的存储类型,类型限定,类型重定义)

进程映像:程序:存储磁盘上的可执行文件(二进制文件、脚本文件)。进程:正在系统中运行的程序。进程映像指的就是进程的分布情况:text 代码段 存储是二进制指令,常量数据,权限是只读,强制修改会产生段错误。data 数据段 初始化过的全局变量bss Block Started by Symbol segment静态数据段 未初始化的全局变量,程序运行时会被清理为0。heap 堆 由程序员手动管理 特点就是够大 从低地址想高地址拓展stack 栈 局部变量、块变量 会随着程序运行不断

2020-09-12 11:36:23 367

原创 c语言学习2(数据类型,类型占位符,常量u\l\f、格式化输入输出、运算符、类型转换)

整型:signedsigned char 1 -128~127 -27~x7-1signed short 2 -32768~32767 -215~215-1signed int 4 正负20亿 21.47亿signed long 4/8 正负20亿/9开头19位整数signed long long 8 9开头19位整数注意:signe

2020-09-12 11:00:58 777

原创 c语言学习01(编译常用参数、编译过程、c文件类型)

#include 的功能就把一个头文件导入到当前文件。#include “xxx.h” 先当前路径下加载xxx.h文件,如果没有再从系统指定的 路径下加载xxx.h文件。#include <xxx.h> 从系统指定的路径下加载xxx.h文件。操作系统通过设置环境变量来指定加载头文件的路径。echo $? 查看上一程序main函数的返回值。-std=gnu99可以设置C99语法。编译时加的常用的参数-E 显示预处理结果-c 只编译不链接,将汇编文件生成二进制文件-o 设置编译结果

2020-09-12 10:48:30 428

原创 递归函数(全排列)(汉诺塔)个人理解

函数自己调用自己的分行叫递归,会产生死循环。递归可以实现分治这种算法,就是把一个复杂的大问题,分解成若干个相同的小分问题,直到问题全部解决。所以递归函数需要:1、出口2、解决一个小问题3、调用自己递归函数每调用一次都会在栈内存产生一份自己的拷贝,直到达到出口,才一层释放,因此使用递归非常耗费内存,与循环相比速度非常慢,能用循环解决的问题不要使用递归。递归优缺点: 1、耗费内存、速度慢 2、就是好理解、思路清晰。 3、可以解决非线性的执行过程。全排列:#inclu

2020-09-06 19:19:37 253

原创 c语言密码输入显示“*” 能退格 回车确定

#include <stdio.h>#include <getch.h>//密码最大长度#define LEN_MAX 12//密码最小长度#define LEN_MIN 6//密码字符范围#define Scope_of_password (33 <= n && n <= 126)//密码获取void getch_mima(char* mima){ int i=0; while(1) { int n=getch()

2020-08-25 20:33:56 2115 3

原创 c 推箱子

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <getch.h>int main(){char arr[10][10]={‘s’,’ ‘,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,’ ‘,’ ‘,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,’ ‘,’ ‘,‘1’,‘1’,‘1’,‘1’,‘1’,‘1’,‘

2020-07-13 20:22:13 104

原创 c走迷宫

走迷宫1、定义二位字符数组作为迷宫2、定义变记录老鼠的位置3、获取游戏开始时间4、进入循环1、清理屏幕,使用system调用系统命令2、显示迷宫(遍历二位字符数组)3、检查是否到达出口获取游戏结束时间,计算走出迷宫用了多少秒4、获取方向键并处理判断接下来要走的位置是否是路1、把走过的位置赋值为空格2、把新位置赋值为人#include <stdio.h>#include <stdlib.h>#include <time.h>#include

2020-07-13 20:09:25 198

原创 Linux学习day02(Ubuntu命令,vim三种模式和命令)

Ubuntu系统使用的小技巧:tab 自动补全命令或者文件名。up/down 调出命令执行记录。Ctrl+Alt+t 可以快速打开终端。Ctrl+Alt+方向 切换工作区。Alt+Tab 切换程序。Ctrl+a 光标移动到开始位置Ctrl+e 光标移动到最末尾Ctrl+k 删除此处至末尾的所有内容Ctrl+u 删除此处至开始的所有内容Ctrl+d 删除当前字符Ctrl+h 删除当前字符前一个字符Ctrl+w 删除此处到左边的单词Ctrl+y 粘贴由Ctrl+u, Ctrl+d, C

2020-07-11 17:21:54 159

原创 Linux学习day01(linux目录,网络)

Linux系统介绍:BCPL->newB->C->UNIX->Minix->LinuxLinux管理硬盘的能力非常强,所以只有一个分区Linux关闭命令行正在执行的程序Ctrl + C 终止是强制中断程序的执行,进程已经终止。Ctrl + Z 是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。Ctrl + S 挂起

2020-07-11 14:22:49 171

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除