- 博客(46)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 C单链表实现数组输入、自动排序、删除功能
#include<stdio.h>#include<stdlib.h>typedef struct Node{ int value; struct Node *next;}datatype;void InsertNode(datatype **head,int value){ datatype *previous; //前一个 datatype *current; //当前的
2022-04-02 16:33:34
1280
原创 C单链表实现简易图书管理系统部分功能
链表单链表信息域,指针域头插法#include<stdio.h>#include<stdlib.h>//日期struct Date{ int year; int month; int day;};//图书管理系统结构体struct Library{ char title[50]; char auther[50]; float price;
2022-04-01 20:52:46
1828
原创 C-结构体指针
结构体指针struct Grades *p;p=&data;访问结构体成员(*结构体指针).成员名结构体指针->成员名#include<stdio.h>struct Date{ int year; int month; int day;};struct Grades{ float grade; int ID; char Name[20]; struct Date date;}data={
2022-03-31 20:50:56
407
原创 C-结构体数组
结构体数组定义//第一种struct 结构体名{ 结构体成员1; 结构体成员2; 结构体成员3;}数组名[长度];//第二种struct 结构体名{ 结构体成员1; 结构体成员2; 结构体成员3; };struct 结构体名 数组名[长度];初始化struct Grades{ char Name[20]; int ID; float grade;}data;struc
2022-03-31 20:50:28
200
原创 C-结构体嵌套
结构体嵌套#include<stdio.h>struct Date{ int year; int month; int day;};struct Grades{ float grade; int ID; char Name[20]; struct Date date;}data={ 99.5, 111111, "小明", {2022,3,31}};int main(){ p
2022-03-31 20:31:39
152
原创 C-结构体基础
结构体1.结构体声明struct 结构体名{ 结构体成员1; 结构体成员2; 结构体成员3; 结构体成员4;}struce Book{ char title[100]; char auther[50]; int price;};定义结构体类型变量语法 struct 结构体名称 结构体变量名;如 struct Grades data;访问结构体变量(点号(.))如 data.Name范例1:#inclu
2022-03-31 20:30:51
130
原创 C代码实现快速排序功能详解
快速排序基本思想通过一趟排序将待排序数据分割成独立的两部分,其中一部分的所有元素均比另一部分的元素小然后分别对这俩个部分继续进行排序,重复上述步骤直到排序完成实现描述声明函数,参数,参数1:要排序的数组,参数2:数组下标左值(为0),参数3:数组下标右值(数组长度减1)选取基准点,我们选择数组中居中的元素a.然后以基准点为标准,基准点左边的数从左向右开始寻找第一个大于基准点的数,然后停止b.接着继续以基准点为标准,基准点右边的数从右向左开始寻找第一个小于基准点的数,然后停止然后将
2022-03-31 14:33:27
195
原创 C-static关键字
static(静态局部变量)用static描述具有文件作用域的变量和函数时,将链接属性由external变为internal,它的作用范围从多文件共享变为单文件独享在模块内(但是在函数体外),一个被声明为静态的变量可以被模块内的所有函数访问但不能被模块外的其他函数访问在模块内,一个被声明为静态的函数只能被这一模块内的其他函数调用!使用static来声明局部变量时,就可以将局部变量指定为静态局部变量在函数体内,一个被声明为静态的变量在这个函数调用过程中维持其值不变,只会被初始化一次,如下.
2022-03-31 14:02:21
106
原创 C语言realloc函数和memcpy函数
realloc重新分配内存空间(当一开始申请的内存不够时,需要再增加内存则可以用realloc()函数实现)用memcpy实现#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int *p=NULL; int *p2=NULL; //第一次申请内存空间 p=(int*)malloc(10*sizeof(i.
2022-03-30 21:27:49
905
原创 C语言初始化内存-mem函数和calloc函数
初始化内存空间mem开头的函数,处理内存空间memset 使用一个常量字节填充内存空间memset(p,0,N*sizeof(int));指定初始化的内存块p ,指定初始化的常量为0,指定内存块的尺寸N*sizeof(int) //N为常量memcpy 拷贝内存空间memcpy(p2,p1,n);将p1中的n个数据拷贝到p2中memmove 拷贝内存空间memcmp 比较内存空间memchr 在内存空间中搜索一个字符#include
2022-03-30 21:26:25
1634
原创 C语言free函数
free(需要加头函数 #include<stdlib.h>)释放动态内存空间函数原型: void free(void *ptr);free函数释放ptr参数指向的内存空间。该内存空间是由malloc、calloc或realloc函数申请的。否则,该函数将导致未定义行为,如果ptr参数是NULL,则不执行任何操作。注意:该函数不会修改ptr参数的值,所以调用后它仍然指向原来的地方(边为非法空间)#include<stdio.h>#include<st.
2022-03-30 21:23:23
8082
原创 C语言malloc函数
malloc(需要加头函数 #include<stdlib.h>)申请动态空间,动态内存存放在堆上,需要释放函数原型: void *malloc(size_t size);malloc函数向系统申请分配size个字节的内存空间,并返回一个指向这块空间的指针如果函数调用成功,则返回一个指向申请的内存空间的指针,由于返回类型是void 指针(void *),所以他可以被转换成任何类型的数据。如果调用失败,返回值为NULL还可以申请一块任意尺寸的内存空间malloc并不会.
2022-03-30 21:22:19
6170
原创 指针-常量指针-指向常量的指针-指向常量的常量指针...
常量和指针常量:520 ‘a’ 3.14#define PRICE 520#define A ‘a’#define PI 3.14使用const关键字修饰const int price =520;const char a=‘a’;const float pi = ‘3.14’;指向常量的指针:const int *pc=&cnum;指针可以修改为指向不同的常量指针可以修改为指向不同的变量 pc=&cnum ->
2022-03-28 20:35:34
396
原创 指向指针的指针
指向指针的指针#include<stdio.h>int main(){ int num=123; //|num|123| int *p=# //|p|&num| //|*p|num|123| int **pp=&p; //|pp|&p| //|*pp|p|&num| // |**pp|
2022-03-28 20:32:50
104
原创 void指针和NULL指针
void指针和NULL指针void-无类型void指针通常把他称为通用指针#include<stdio.h>int main(){ int num=213; int *p1=# char *p2="huang lao ba"; void *p3; p3=p2; printf("num=%d\n",num); printf("p1=%p\n",p1)
2022-03-28 20:27:20
143
原创 数组指针和二维数组
指针和二维数组二维数组array[4][5]数组名的含义:指向包含五个元素的指针证明如下:#include<stdio.h>int main(){ int array[4][5]={0}; printf("sizeof int : %d\n",sizeof(int)); printf("array : %p\n",array); printf("array+1 : %p\n",array+1);
2022-03-28 20:25:28
331
原创 指向数组的指针和指针的运算
指针和数组数组名其实就是地址信息,它是数组第一个元素的地址指向数组的指针char *p;char a[];p=a;p=&a[0];指针的运算当指针指向数组元素的时候,我们可以对指针变量进行加减运算,这样做的意义相当于指向距离指针所在位置向前或向后的第n个元素。对比标准的下标法访问数组元素,这种使用指针进行间接访问的方法叫做指针法#include<stdio.h>int main(){ int a[5]={15,466,8461,4987,131684
2022-03-28 20:22:56
332
原创 指针基本知识
指针指针和指针变量指针变量存放的是地址存放地址的变量是指针变量,存放的地址称作指针定义指针变量形式: 类型名 *指针变量名范例:char *pa; //定义一个指向字符型的指针变量int *pb; //定义一个指向整型的指针变量取地址运算符和取值运算符如果需要获取某个变量的地址,可以使用取地址运算(&)如:char *pa=&a;int pd=&f;如果需要访问指针变量指向的数据,可以使用取值运算符()如:printf("
2022-03-28 20:21:32
101
原创 数组,字符数组,二维数组
数组类型 数组名[元素个数]例子int a[6]; 24=4*6个字节char b[24]; 24=1*24个字节double c[3]; 24=8*3个自己访问数组元素数组名[下标]a[0]; a数组中的第一个元素b[1]; b数组中的第二个元素数组初始化(定义的同时进行赋值)将数组中所有元素初始化为0 int a[10]={0};赋予不同的值,剩余部分自动初始化为0
2022-03-28 20:19:56
103
原创 算数运算符,逻辑运算符,关系运算符..等的优先级表
优先级运算符含义单双目使用形式1[ ]数组下标数组名[整型表达式]1( )括号(表达式)1.成员选择(对象)对象.成员名1->成员选择(指针)对象指针->成员名1++自加单目变量名++1–自减单目变量名–2-负号单目-表达式2(类型)类型强制转换单目(类型)表达式2++自加单目++变量名2–自减单目–变量名2*取值运算符单目...
2022-03-25 22:29:36
3211
原创 字符处理函数strlen-strcpy-strcmp
字符串处理函数(加头文件,#include<string.h>)strlen: 获取字符串的长度,而不是尺寸,不包含’\0’结束符而sizeof包括如下例 1 #include<stdio.h> 2 #include<string.h> 3 int main(){ 4 char str[]="huang lao ba is my son"; 5 printf("strlen str =%d\n",strl
2022-03-25 09:37:48
295
原创 指针数组和数组指针
指针数组和数组指针指针和数组的区别数组名只是一个地址,而指针只是一个左值指针数组(数组)和数组指针(指针)int *p1[5]; 指针数组int (*p2)[5]; 数组指针指针数组 int *p1[5]; //指向整型变量的指针指针数组是一个数组,每个数组元素存放一个指针变量指针数组的初始化范例:#include<stdio.h>int main(){ char *p1[5]={ "黄老八
2022-03-25 09:35:44
70
原创 C语言strcpy函数
#include<stdio.h>#include<string.h>int main(){ char str[]="123"; char str1[]="12345678"; char str2[]="huang lao ba zi"; strcpy(str,str1); printf("%s\n",str); strcpy(str,str2);
2022-03-22 20:57:43
562
1
原创 C-用for语句判断一个数是否为素数
example:判断一个数是否为素数素数:大于1,除了1和它本身,无法被其他的自然数整除的自然数 1 #include<stdio.h> 2 int main(){ 3 int num,i; 4 _Bool flag=1; 5 printf("please enter an integer :"); 6 scanf("%d",&num); 7 for(i=2;i<num/2;i++){ 8
2022-03-19 15:14:37
1198
原创 C语言-算数、关系、逻辑运算
算术运算+ - * / %关系运算<=>=!===><真->1 假->0非0->真 0->假关系运算值只有0和1逻辑运算与->&&或->||非->!运算符优先级别非(单目运算符)-算数-关系-与-或-赋值 (优先级从高到低)注意数学上0<x<10,在C语言中表示为0<x&&x<10而C语言中的0<x&
2022-03-16 20:27:05
1755
原创 Linux-Vim使用技巧
Vim使用技巧导入命令执行结果:r !命令将文件内容导入到光标所在位置 :r 文件名查找命令所在位置 !which 命令名将命令执行结果导入当前文件中 :r !date定义快捷键 :map 快捷键 触发命令范例: :map ^P(Ctrl v Ctrl p) I# :在命令模式下注释范例: :map ^B 0x连续行注释 :n1,n2s/^/#/g (n1到,n2行行首加入#,^(Shift
2022-03-13 10:41:30
1480
原创 Linux文本编辑器Vim使用技巧
文本编辑器常用操作Vim:功能强大的全屏幕文本编辑器作用:建立,编辑,显示查看文本文件(Vim没有菜单,只有命令)操作进入命令模式: vi filename退出命令模式: :wq由命令模式进入插入模式输入 i a o退出 ESC键由命令模式进入编辑模式进入:按一个冒号命令以回车结束运行插入命令a:在光标所在字符后插入A:在光标所在尾行插入i:在光标所在字符前插入I:在光标所在行行首插入o:在光标下插入新行O:在光标上插入新行定
2022-03-13 10:39:25
543
原创 Linux关机重启命令
关机重启命令shutdown语法:shutdown [选项] 时间-c:取消前一个关机命令-h:关机-r:重启其他关机命令haltpoweroffinit 0其他重启命令rebootinit 6系统运行级别0 关机1 单用户:类似Windows中的安全模式,以root用户登录2 不完全多用户,不含NFS(网络文件系统)服务3 完全多用户4 未分配5 图形界面6 重启改变系统默认级别cat /etc/initta
2022-03-13 10:36:20
1349
C语言中strcpy溢出问题
2022-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人