自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基础(部分)

scanf scanf_s标准的scanf 不安全的函数,输入的时候有可能会越界更安全的函数scanf_s输入字符和字符串的时候需要指定长度,所以更安全,一旦达到输入的长度,会自动阶段输入注意:格式控制字符串中,每个格式控制符,最好用空格隔开,输入字符串的时候遇到空格会自动截断getcahr获取一个按键,返回按下的键的ascii码值注意缓冲区问题gets_s获取一串字符串,可以读取空格,对于输入字符串推荐用这个printf格式控制符要对应,后面的变量参数列表格式控制符中间可

2020-12-31 18:14:00 60

原创 字符串(部分)

首先要明确的一点是,函数也可以作为函数的参数来传递.回调函数到底是怎么回事?首先至少要有3种类型的函数.主函数:相当于整个程序的引擎,调度各个函数按序执行回调函数:一个独立的功能函数.中间函数:一个介于主函数和回调函数之间的函数,登记回调函数,通知主函数,起到一个桥梁的作用.当做函数参数传入的函数,称之为回调函数(至于为什么要叫“回调函数”,不能叫别的呢?其实这只是人为规定的一个名字.你也可以叫“maje专属函数”,但是到时候你又会问为什么要叫“maye专属函数”,它总的有个名字吧!所以叫“回调函数”

2020-12-30 19:24:25 74

原创 指针

二维数组的每个元素都是一维数组,所以最大的存储单元应该是一个指向一维数组的指针.刚刚学习一维数组,接触到的指向整个数组的指针,就是二维数组指针.当指向二维数组时,不需要对数组名取地址,切记~.如何使用二维数组指针?下标法:对于二维数组,一般使用下标法,简单方便.下标法:对于二维数组,一般使用下标法,简单方便指针数组和数组指针.指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,它是“储存指针的数组”的简称,数组指针:首先它是一个指针,它指向

2020-12-29 18:57:01 93

原创 指针(部分)

算术运算:指针是一个用数值表示的地址.因此,我们可以对指针执行四种算术运算:++、–、+、-.(其他运算没有意义)总结:指针的每一次递增,它其实会指向下一个元素的存储单元,指针的每一次递减,它都会指向前一个元素的存储单元,指针在递增和递减时跳跃的字节数(步长)取决于指针所指向变量数据类型长度,比如 int就是4个字节.关系运算:指针可以用关系运算符进行比较,如==、<和>.如果p1和p2指向两个相关的变量.比如同一个数组中的不同元素,则可对p1和 p2进行大小比较.总结:对相关变量的指针进

2020-12-27 18:26:28 66

原创 无头链表封装方式

#include<stsio.h>#include<stdlib.h>使用二级指针方法无头链表:第一个节点中存放了数据struct Node{int data;struct Nodenext;};struct NodecreateNode(int data){structNodenewNode=(struct Node)malloc(sizeof(struct Node));newNode->data=data;newNode->next=NU

2020-12-26 18:53:56 83

原创 指针(部分)

地址内存单元(字节)的编号地址是不变的地址是唯一的地址是连续的首地址变量的第一个最大存储单元地址其实就是一个整数指针指针:指针类型 大小是四个字节(32位机器)八个字节(64位机器)指针变量:是一个变量,用来保存地址;指针变量保存谁的地址,那我们就说指针指向了谁指针指向的内存空间整数:int字符型:char小数:float地址:指针变量指针的定义数据类型* 指针变量名定义指针类型的诀窍:怎么定义变量,就先写出一个变量,再在变量名前面加一个星号※,表示变量是一个指针变

2020-12-25 19:03:08 84

原创 链表

struct NodesearchInfoByName(struct NodeheadNode,char filrName){struct NodepMove=headNode->next;while(headNode!=NULL&&strcmp(pMove->data.name,namr)){pMove=pMove->next;}return pMove;}}

2020-12-24 17:52:45 83 2

原创 链表功能基础

#include<stdio.h>#include<stdlib.h>#include<conio.h>如何做一个管理类:增-删-改-查;先做菜单采取一种插入方式,一种删除方式structNode{.int data;struct gril data;struct Node *next;};将数据修改为相应数据struct girl{char name[20];int age;int num;char grade

2020-12-23 18:32:53 94

原创 链表(部分)

于指定位置插入告诉指定位置创建新节点posFrontNodeposNodeposFrontNode->next=newNode;newNode->next=posNode;struct Node*headNode:操作的是哪个链表int data:新节点数据int posData:指定位置void insertByAppoin(struct nodeheadNode,int data, int posData){struct NodeposFrontNode=headNo

2020-12-22 20:47:06 88

原创 链表(部分)

数据结构:存储数据的结构有头链式结构有头链表链式结构:结构体变量与结构体变量连接在一起结构体:数据域,指针域struct Node{int data;struct Node next;}#include <stdio.h>#include<stdlib.h>struct Node{int data;struct Nodenext;};int main()(创建结构体变量){struct Node node1={1,NULL};struct N

2020-12-21 19:36:55 79

原创 图形编程

光的三原色是红,绿,蓝颜色使用用三原色表示用RGB宏合成颜色,实际上合成出来的颜色是一个十六进制的整数RGB(红色部分,绿色部分,蓝色部分)每个颜色部分的值都是从0~255坐标默认的原点是在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点设备绘图表面在EasyX中,设备分两种,一种是默认的绘图窗口另一种是IMAGE对象,通过SetWorkingImage()函数可以设置当前用于绘图的设备.设备当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上initgraph(int wid

2020-12-20 18:28:35 794

原创 函数(部分)

如int a,int b为形参是剧本角色,但函数调用时传递进来的参数称为实参,为演员,函数执行就是演戏的过程程序刚开始执行的时候,编译器并不为形参分配存储空间,是因为它只是个角色,不是实体,一直到函数调用时,编译器为形参分配存储空间,并将实参的值复制给形参,结合.可知在实参被调用前,怎样处理形参都不会影响实参,类似于剧本中的角色受伤并不是演员真正的受伤,在函数执行结束返回时,创建的形参被撤销,戏演完了,角色终止函数调用的一般形式:函数名(实参列表)作为表达式的某一项int res=add(5,3)

2020-12-19 18:36:52 101 1

原创 函数(部分)

函数是什么是完成特定任务的独立程序代码是构成程序的基本模块为什么要使用函数可以省去编写重复代码可以让程序模块化,提高代码可读性方便后期修改,完善隐藏了实现的细节函数分类用户角度,c语言的函数可分为标准函数,即函数库别人封装好的函数,非常丰富例如输入/输出 scanf(),printf(),rand()数学计算 sqrt(),abs(),sin()自定义函数自己编写的用来完成特定任务的函数从函数形式,c语言的函数可分为无参函数:getchar()有参函数:print

2020-12-18 21:27:06 59 1

原创 字符串(部分)

这里的字符串是常量,无法修改char *name=“hello,world”;用数组存的字符串,是变量,可以修改char str[20]=“hello world”;name[0]=‘A’;引发了异常:写入权限冲突。name是常量str[0]=‘A’;printf("%s\n",name);printf("%s",str);return 0;""空字符 " "里面内含’\0’char str[10]={0};#include<stdio.h>int ma

2020-12-17 18:15:45 108 1

原创 字符串

字符普通字符:‘w’,‘1’转义字符’\a’,’\n’字符串“Boy”,“Maye”字符与字符串的区别1.形式上不同2.本质上,字符串由结束符’\0’在c语言中是没有字符串类型的,那么如何输出字符串呢char ch=‘y’;putchar(ch);char name[10]={‘m’,‘a’,’‘y’,‘y’};是字符串没有存满或超过数组的最大存储数量,所以后面的元素自动补零,即0为结束符char str[5]={‘m’,‘a’,‘y’,‘e’,‘2’};不是字符串,没有结束符,已经

2020-12-16 19:07:11 91

原创 文件(部分)

操作,fgetc这个函数读取完会将文件指针移动到下一个字符char ch=fgetc

2020-12-15 19:37:02 72 1

原创 文件操作

文件分类:文本文件和二进制文本文本文件:保存的时候,每一个字符对应一个字节二进制文件:按照二进制编码保存的文件文件操作:打开,写入,读取,关闭数据永久化,存入硬盘中#include<stdio.h>int main(){打开文件FILE(结构体文件信息.)fp=fopen(“C:…”,(位置);if(fp==NULL){printf("打开文件失败);return 0;}在文件使用结束之后,一定要关闭文件关闭文件fclose(fp)return 0;函数原型

2020-12-14 19:02:01 88

原创 推箱子

二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用的很少,因为二维数组的本质就是一维数组,只不过形式上是二维的。定义:数据类型 数组名[ROW][COL】ROW二维数组的行COL二维数组的列对于二维数组,可以看成一张表格,方便理解,但是下标和一维数组一样,都是从0开始的内存理解二维数组是由行和列组成的,所以说,要获取到一个元素,需要两个下标表示可以理解为二维数组的每个元素都是一维数组游戏设计步骤1.初始化数据2.绘制界面3.人及箱子移动#defi

2020-12-13 18:07:00 209

原创 共同体

共同体定义定义union多个成员共生,共同存在,多个成员占用同一块内存,在任一时刻只有一个成员使用此块内存共同体是会按照成员中最大的一个数据长度分配空间union TextUnion{Char i;short j;}union TextUnion tu={45}; 只能给一个值printf("%d",tu.i);printf("%d",tu.j);printf("%d",&ti.i);printf("%d",&tu.j);解析范围不同,类型不同,地址相同

2020-12-12 21:11:04 82

原创 宏定义(部分)

宏定义#include<stdio.h>#include<stdlib.h>1.符号常量2.替换3.宏函数 宏函数参数一定要括号4.对编译器进行预处理,将define写在最上面#define MAX 100 符号常量#define ING int#define 整形 int#define PRINYINFO printf("%d\t%s\n",age,name#define MAXNUM(a,b) ((a)>(b)?(a):(b))int main

2020-12-12 20:57:42 72

原创 结构体(部分)

不完整声明配合指针struct A{int num;struct B b;};struct B{int num;};struct A{char ch;short s;int i;}sizeof(struct A)==8边界对齐:按照最大的内对齐struct A{char ch;double d;

2020-12-11 19:39:38 86

原创 结构体自引用

结构体的第一种方式typedef struct _person{char name[20];char sex[4];unsigned char age;int height;float weight;}person,*pperson;第二种方式struct _person{}char name[20];char sex[4];unsigned char age;int height;float weight;};typedef struct _person person

2020-12-11 18:28:53 403

原创 结构体指针

将一个指针可以指向一个结构体person* pperson=&p1;(*pperson).age<=>pperson->agevoid say{person星号※ p){printf(“姓名:%s,性别:%s,年龄:%d,身高%d,体重%.2f\n”,p->name,p->sex,p->age,p->height,p->weight);Person 星号※pperson=&p1;say(pperson);}传指针和传址有什么区

2020-12-10 19:45:35 87 1

原创 结构体

结构体是一种构造类型,它是由多个成员组成,其中每个成员可以是基本数据类型或者也可以是构造类型人:姓名,年龄,身高,体重struct 结构名struct person(){char name[20];char sex[4];unsigned char age;int height;float weight;};struct Datatime{int year;int month;int day;int hour;int minute;int second;};int m

2020-12-10 19:33:15 117 1

原创 循环

循环,就是对某块段代码进行多次重复执行,循环结构是c语言程序中书写常用的一种重要控制结构,c语言中提供了三种循环结构分别是while结构,do while结构和for结构循环结构有两大要素:循环条件和循环体,当满足某个条件时,重复执行某些动作,直到该条件不再满足,这个表述很好的体现了循环条件和循环体的关系。构造循环时,首先要明白要做什么,即’循环体’是什么",这是和程序的目的有关,了解干什么还不够,还要知道什么时候开始做,什么时候停,...

2020-12-09 21:14:30 253

原创 if语句(部分)

#include<stdio.h>int main(){int age=17,money=100;if(age<=18){if(money>100){printf(“富二代”);}else{printf(“努力”);}}else为就近原则}

2020-12-08 19:42:07 81

原创 语句(部分)

程序的最小独立单元----语句如果把写程序和写小说类比,变量常量等可以看成是字和词,函数可以可以看做一个段落,运算符可以看做是字词的组合方式(规则),那么,字词组成的句子就是小说的最小独立单元,表达了一定的意思,同样,程序的最小独立单元室"语句",每个语句表达出完整的意思为解决某一问题而设计的一系列有序指令的集合表达式5+2赋值int a=5+2;函数调用语句printf(“hello”);空语句;;块语句{printf("%d",5+2-8);}分支语句判断整数是奇数还是

2020-12-08 19:34:32 76

原创 运算符

位于赋值运算符两侧的两个值,赋值号左边的叫做左值,右边的叫右值L-value中的L指的是Location,表示可寻址R-value中的R指的是Read,表示可读左值,指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以作为一个左值右值,指的是引用了一个存储在某个内存地址里的"数据"如“int a=66”,声明了一个整型变量a,则a是左值,66是右值...

2020-12-08 18:59:53 136

原创 c语言字符串操作(部分)

char *str=“helloworld”;char sz{‘h’,‘e’,‘l’,‘l’,‘o’,’\0’,‘w’}printf (“长度=%d\n”,strlen(str));printf("%d\n",strlen(sz));即遇到’\0’结束计算unsigned int MyStrlen(const char *str){unsigned int n=0;while (星号※str !=’\0’){str++;n++;}return 0;}printf("%d\n",M

2020-12-07 18:27:22 146

原创 指针与二维数组

int arr2[4]【5】={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},};for (int i=0;i<4;i++){ for (int j=0;j<5;j++){printf("%d",arr2[i]【j】;}printf("\n);}arr表示什么?首地址类型是什么,不是指向int型的指针,是一个指向数组的指针可以把二维数组看成一维数组,一维数组一行为一个元素

2020-12-06 18:30:36 60

原创 枚举

枚举(类似于#define宏定义)enum hero(类型){Guanyu=45,Liubei=23,Zhangfei=89,Caocao=21,Sunquan=110};整型值(可以给部分枚举子给值,也可以不给值)若未赋值,则第一为0全部不给值,默认为0开始int main(){enum Hero hero=zhangfei;printf(“hero=%d\n”,hero);return 0;}enum Color{red,green,blue};未给值enum Color(red

2020-12-05 12:12:35 82

原创 指针和字符串的关系

printf(%d\n",“hello world”);输出的字符串的首地址,指针此指针的类型是char型char*str=“hello dunkai”;存的为地址printf("%s\n",str);星号※“hello world”;对地址的间接访问,可视为数组printf(“星号※“helloworld”=%c\n”,*“helliworld”);数组得下标访问与简介访问可以互相通用指针和数组的区别int arr3(2)(3)[4]={0,1,2,3};{前两个小括号为中括号)arr

2020-12-05 11:45:41 266 1

原创 操作数,运算符,表达式

参与运算的对象称作操作数(operater)运算符是指定要执行某项操作的一个标志符号,它指明了对操作数所要进行的运算表达式表示一个求值的规则。表达式是由变量,常量,运算符,函数和圆括号按一定的规则组合而成的。c语言的表达式可根据运算的不同而分为不同的表达式类型,如算术表达式、关系表达式、位运算等一般来说,表达式有自己的手写规则运算符不能相邻,例a±b是错误的乘号不能省略,例x乘以y应写成x*y,不能写成xy可用多层括号表示运算次序,括号必须成对出现,均使用小括号运算符根据操作操作数个数分类单

2020-12-04 19:01:35 1319

原创 数据类型转化

#include <stdio.h>int main(){int a=-100;unsigned b=2;if (a>b){printf(“a>b”);}有符号:1110 0100(-100)1001 1100无符号无符号:0000 0010(2)return 0;}强制类型转换强制类型转换,一般形式:(类型名)(表达式)例 :(int)(x+y)(int)x+y(double)(3/2)(int)3.6float f=2.16f;int i

2020-12-04 18:22:30 58

原创 指针作为函数返回值

函数返回值也可以返回指针double*Show(double);{printf(“数值:%lf\n”,n);return &n;}double d=45.6;double*p=Show(d);printf(“d的地址=%d\n”,&d);printf(“p=%d\n”,p);此下为错误示范*p=456.7修改的是形参nprintf("*p=%lf\n",*p);不会报错,无法返回intswapPlus(intpa,int*pb){int temp=*pa;*

2020-12-03 19:49:27 184

原创 指针作为函数参数传递

交换两个整数的值void swap(int a,int b){int temp;temp=a;a=b;b=temp;}int main(){int a=10,b=20;printf(“a=%d,b=%d\n”,a,b);}

2020-12-03 19:31:47 306 1

原创 指针的间接访问

间接访问*间接访问运算符 (解引用运算符)printf("*pa=%d\n",*pa);pa=100;此为间接访问即pa就等价于变量aprintf("※&a=%d\n",※&a);(星号*=※)printf("&*pa=%d\n",&*pa);指针也可改变指向pa=&c*pa=500printf(“c=%d”,c);c=500二级指针指向一级指针的指针printf("pa的地址)int**ppa=&pa;(二级指针存的是一级指针

2020-12-02 18:56:36 1704

原创 指针和一维数组

int arr[10]={1,2,3,4,5,6,7,8,9};arr表示数组的首地址,数组名printf(“arr=%d\n”,arr);printf(“arr[0]的地址=%d\n”,&arr[0]);arr=45678787常量不可改变不可赋值arr的类型:指向int型的指针int*parr=arr;printf(“arr+1=%d\n”,arr+1);...

2020-12-02 17:54:55 105

原创 指针运算

指针的运算指针+整数=指针指针-整数=指针指针-指针=单位长度<,>,==,!=int*pd=pa+10;printf(“pd=%d\n”,pd);pa=15006356pd=15006396double d=45.6;double*pdouble=&d;printf(“pdouble=%d”,pdouble);printf(“pdouble+5=%d\n”,pdouble+5);char ch=‘A’;char *pch=&ch;printd(“p

2020-12-01 20:00:48 68

原创 指针基本概念

指针涉及到内存,内存就是内存条,电脑4,8,16G内存内存存储数据到内存条通电内存条可以存储数据断电内存条无法存储硬盘永久存储内存条内存最小单元:字节一字节八个bite位一bite位存0或1电脑存储内存于...

2020-12-01 19:24:46 190

空空如也

空空如也

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

TA关注的人

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