- 博客(18)
- 收藏
- 关注
原创 实现strlen,strcpy,strcat,strstr
int Strlen(const char* str)int Strlen(const char* s){ int size=0; while(*str!='\0'){ size++; str++; } return size;}char* Strcpy(char* dest,const char* src)char* Strcpy(char* dest,const char* src){ if(dest==NULL||src==NULL){ return NULL;.
2020-09-04 15:17:31
132
原创 static
staticstatic修饰全局变量或者局部变量(1)将全局变量或局部变量变为静态全局变量或者静态局部变量,生命周期是整个程序运行周期,存储在data段。(2)所有静态变量只初始化一次,未初始化的静态变量默认初始化为0。(3)静态局部变量只在本文件可见,外部文件无法访问;静态局部变量只在定义的作用域可见。static修饰函数用static修饰的函数,无法被两个文件同时使用。static修饰成员变量和成员函数(1)static修饰的成员变量不在对象模型当中,存储在data段。所有对
2020-09-04 09:43:25
150
原创 粘贴位
linux下的粘贴位对目录设定,该目录下的文件或者目录只能是拥有者可以删除或者root可以删除,其他角色的用户,就算对该对象有写权限,也无法删除该对象。例如:aa在share目录下创建abc文件设置粘贴位:chmod o+t share...
2020-08-14 19:59:58
248
原创 linux下用户设置位
linux下用户设置位1.首先,Linux下的实际用户(组)D和有效用户(组)ID理解如下: a:实际用户(组)ID:实际用户ID和实际用户组ID:标识我是谁。也就是登录用户的uid和gid,比如我的Linux以simon登录,在Linux运行的所有的命令的实际用户ID都是simon的uid,实际用户组ID都是simon的gid(可以用id命令查看) b:有效用户(组)ID:有效用户ID和有效用户组ID:进程用来决定我们对资源的访问权限。一般情况下,有效用户ID等于实际用户ID,有效用户组ID等于
2020-08-14 19:36:41
269
原创 auto,范围for,NULL
auto,范围for,NULL在c语言中auto表示局部变量c++中进行自动类型推导,根据初始化表达式进行推导,相当于类型占位符1.定义时必须初始化 auto a;(error)2.auto可以同时定义多个变量,每个表达式的类型必须一致3.多用于长类型的定义,但不易理解4.函数参数不能使用auto void fun(auto a,auto b);(error)5.auto定义指针加不加*都一样范围for (要迭代的变量:迭代的范围),其中范围要明确编译器默认NULL为整数的0,C++
2020-05-22 19:42:28
236
原创 内联函数
内联函数#include<iostream>using namespace std;#define ADD(a,b) a+b//c++有说那些技术可以代替宏//1:常量定义//2:函数定义使用内联函数 //int Add(int a,int b){// return a+b;//} inline int Add(int a,int b){//编译器编译时,会进行函数指令的展开,没有栈帧的开销,提高运行效率 但对于函数结构太过复杂的并不会展开(循环或者递归) return
2020-05-22 19:36:02
135
原创 引用
引用引用和指针的区别1:引用在定义时必须初始化,指针没有要求2:引用初始化时指向一个实体,之后不能再指向其他实体,而指针可以在任何时候指向任何同类型0的实体3:没有NULL引用但有空指针4:sizeof(引用)结果是指向实体类型的大小,而sizeof(指针)是固定的8,或者45:引用自加即引用实体自加,而指针自加指的是向后偏移一个类型的大小6:有多级指针但没有多级引用7:访问实体方式不同,指针需要解引用而引用不需要const引用(1.引用指向const修饰的变量或者是常量时也需要用co
2020-05-22 19:34:56
191
原创 函数重载
函数重载c编译器:编译后底层函数名中不包含参数信息 _addc++编译器:编译后函数名中包含参数信息,所以支持重载 _Z3addii(两个i,表示两个int类型的形参)函数重载:函数名相同,参数(顺序,个数,类型)不同extern “C” +函数 可以让编译器按照C语言的编译规则进行编译#include<iostream>using namespace std;//c编译器:编译后底层函数名中不包含参数信息//c++编译器:编译后函数名中包含参数信息,所以支持重载
2020-05-22 19:30:13
130
原创 缺省参数
缺省参数半缺省参数必须从右向左一次性给缺省参数赋值,中间不能有间隔如果没有传参,就使用默认参数并且缺省值只能在函数声明或者定义处出现,不能同时出现#include<iostream>using namespace std;//void fun(int a,int b,int c){ cout<<a<<b<<c<<endl;}//必须从右向左一次性给缺省参数赋值,中间不能有间隔 void fun1(int a=1,int b=
2020-05-22 19:25:07
202
原创 标准输入输出
标准输入输出cout字符串指针输出内容,非字符串指针输出地址#include<iostream>using namespace std;int main(){ char* p="1234"; int a=10; int* pa=&a; cout<<p<<endl;//cout字符串指针输出内容,非字符串指针输出地址 cout<<pa<<endl; return 0;} ...
2020-05-22 19:20:21
95
原创 命名空间
命名空间c++命名空间的使用方式(可以分段,可以嵌套定义)1:命名空间+::+成员(推荐使用)2:using+命名空间+::+成员; 在后面使用时不用加作用域,成员暴露在全局域中,如果区全局域中有同名成员,会导致命名冲突3:using+namespace+命名空间; 成员全部暴露在全局域中,可能会导致命名冲突 #include<stdio.h> //c++命名空间的使用方式(可以分段,可以嵌套定义) //1:命名空间+::+成员(推荐使用)//2:using+命名空间+
2020-05-22 19:17:25
141
原创 数据结构——八大排序算法c语言实现
数据结构——八大排序算法c语言实现插入,希尔,选择,冒泡,堆排,快排,归并,计数c语言实现,并分析其时间,空间复杂度以及稳定性#include<stdio.h>#include<stdlib.h>#include"Sort.h" #include<memory.h>void Swap(int* array, int i, int j){ int tmp=array[i]; array[i]=array[j]; array[j]=tmp;}//插入
2020-05-13 18:33:29
541
原创 数据结构——二叉树的操作(二叉树的创建,销毁,递归,非递归前中后序遍历等)
数据结构——二叉树的操作#include<stdio.h>#include<stdlib.h>#include"BinaryTree.h"#include"Stack.h"#include"queue.h"//typedef char BTDataType;//typedef struct BinaryTreeNode//{// BTDataType _...
2020-05-04 21:06:54
377
原创 数据结构——队列 c语言链表、顺序表实现
数据结构——队列 c语言链表、顺序表实现队列特点:只能在结构的一端插入,另一端删除;先进先出链队(用带尾指针的单链表实现)/*typedef int QDataType;typedef struct QNode{ struct QNode* _next; QDataType _data;}QNode;typedef struct Queue{ QNode* _fro...
2020-05-01 17:06:50
161
原创 数据结构——栈c语言顺序表实现
数据结构——栈c语言顺序表实现栈特点:只能在表的一端插入删除,后进先出Stack.h#pragma once#include <stdlib.h>#include <stdio.h>//顺序表实现栈typedef int Type;typedef struct Stack{ Type* _array; size_t _size; size_t...
2020-05-01 16:53:31
308
原创 数据结构——单链表、双链表c语言实现
数据结构——单链表、双链表c语言实现链表特点(缺点):(1)非连续结构,实现结构复杂(2)不支持随机访问使用场景:频繁插入删除链表类型:单向、双向;带头、不带头;循环、非循环 三种属性可组成8中类型的结构带尾指针的非循环链表:尾插时间复杂度O(1),尾删时间复杂度O(n)(遍历整个链表,将尾指针指向的前一个节点的next置为NULL)双向循环链表:任意位置插入删除的...
2020-04-30 20:40:32
664
原创 数据结构——动态顺序表c语言实现
:----------------数据结构——顺序表实现:------------------优点:(1)存储结构连续,实现简单:---------(2)随机访问,尾插尾删O(1)缺点:其他位置插入删除O(n),并且有增容代价使用场景:适用于频繁访问seqList.h#pragma once#include <stdio.h>#include <stdlib.h...
2020-04-29 17:46:29
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人