![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
xu_06161014
这个作者很懒,什么都没留下…
展开
-
Linux介绍和基本使用(day01)
Linux介绍和基本使用Linux介绍和基本使用:1.目录2.路径3.Linux中的文件分类4.Linux的文件权限5.Linux常用指令6.文件管理相关指令7.解档归档,压缩解压缩Linux介绍和基本使用:1.目录相当于windows中的文件夹2.路径路径反映目录和文件的位置文件位置: - windows :盘符:\文件夹\文件 - linux: /home/kiosk/Pictures/路径分为绝对路径和相对路径绝对路径:绝对路径是从目录树的树根“/”开始往下直至到达文原创 2021-01-17 22:17:47 · 90 阅读 · 0 评论 -
Linux介绍和基本使用(day02)
day02 用户权限、VI操作#一.用户和组的操作1. 查看当前用户whoami #查看当前用户2. 查看当前登录用户who #查看当前所有登录系统的用户信息 who -m #只显示运行who命令的用户名、登录终端和登陆时间3.切换用户账户su #切换到root su root #切换到root su - #切换到root,同时切换到root目录 su - user #切换到user,同时切换到user目录`4. 添加、删除组账号:group原创 2021-01-18 16:43:19 · 98 阅读 · 0 评论 -
day03 C语言基础
#Day03 C语言基础#一、第一个程序hello World!!!#include<stdio.h>//包含头文件 std标准库 io 输入输出库 <>系统库 "" 自定义头文件//这是一行注释/*块注释*///函数值的返回值类型 int整型//函数的参数类型 void空类型int main(void){ printf("hello World!!!"); return 0;}//VS快捷键 Ctrl+K+C 注释 Ctrl+K+U取消注释原创 2021-01-27 22:11:38 · 68 阅读 · 0 评论 -
day04 数据类型与运算符
数据类型与运算符一、数据类型C语言32个关键字duto break case char constcontinue default do doubleelse enum extern float forgoto if int long registerreturn short signed sizeof static struct switch typedef unsigned unionvoid volatile while九种控制语句if()~else~for()~原创 2021-01-27 22:14:30 · 58 阅读 · 0 评论 -
Day05 运算符和流程结构语句
Day05一、运算符表达式和流程控制语句运算符1、算数运算符【+ - * / % ++( 自增 ) --(自减)】 int a =10; a++;等同于 a = a+1; 等同于 a += 1 ++a; 2、赋值运算符【= += -= *= /= %=】 3、比较运算符【 > < >= <= == !=】 4、逻辑运算符【! && ||】二、类型转换1、隐式转换 编译器会自动将低的数据类型转成高的数据类型,转化后的数据正确 2、强制转原创 2021-01-30 11:39:54 · 55 阅读 · 1 评论 -
Day06 数组
Day06 数组一、数组的定义1、数组的定义和使用格式: 数据类型 数组名[元素个数] 例子:int scores[10]; //scores[0]-scores[9] scores[0] = 10; //赋值操作 int scores[10] = {99,66,51,516,15,3151,31,31,52,85}; //赋值操作 int scores[10] = {99,66,51}; //赋值时括号中一次为数组前面的元素赋值,如果数组长度超过元素个数,后面的值全部初始化原创 2021-02-01 11:14:31 · 208 阅读 · 0 评论 -
Day07.字符串处理函数与函数
Day07.字符串处理函数与函数一、字符串处理函数1、gets()和puts()//gets() 从标准设备上获取一个字符,这个字符可以带空格,直到接收到换行字符或者字符串结束标志才停止//puts() 从标准设备上,输出一个字符串,这个字符串自带 '\n' 换行#include<stdio.h>int main(void){ char arr_0[30]; gets(arr_0); puts(arr_0); char arr_1[30]; gets(arr_1原创 2021-02-04 14:47:36 · 83 阅读 · 0 评论 -
Day08,Day09 指针(上)
Day08,Day09 指针一、指针的定义和使用/* 1.指针:是一种数据类型 2.指针格式:对应数据类型* int a = 10; int* p = &a; 3.p:指针类型变量 用来指向一个变量的地址 4.内存按照 unsignned int 为每个一个内存分配编号 */ #include<stdio.h> #include<stdlib.h> int main(void) { int a = 10; //指针是一种数据类型原创 2021-02-05 22:49:57 · 61 阅读 · 0 评论 -
Day08,Day09 指针(下)
Day08,Day09 指针十二、指针和函数#include<stdio.h>#include<stdlib.h>//地址传递,可以改变实参的值void tab(int* a, int* b){ int temp = *a; *a = *b; *b = temp; return;}int main(void){ int a = 10; int b = 20; tab(&a, &b); printf("%d %d\n", a,原创 2021-02-06 21:39:00 · 55 阅读 · 0 评论 -
Day10.内存结构
Day10.内存结构一、作用域1、全局变量和局部变量#include<stdio.h>#include<stdlib.h>#include<string.h>//声明变量,声明之后便可以在此文件中使用这个变量//声明不会分配内存空间//extern int a;//全局变量 作用在整个项目中,使用的前提是需要在使用的文件中进行声明int a = 100;int main(void){ //变量的作用范围:从创建到所在函数结束 int a原创 2021-02-09 00:03:05 · 85 阅读 · 0 评论 -
Day11.复合类型
Day11.复合类型一、结构体的定义和赋值#include<stdio.h>#include<stdlib.h>#include<string.h>/*struct 结构体名称{ 结构体成员列表};*/struct students{ //成员列表 char name[30]; unsigned int age; char tel[16]; float scores[3]; char sex;}stu_1 = { "曹儿子",16原创 2021-02-21 12:28:40 · 678 阅读 · 0 评论 -
Day12.文件(上)
Day12.文件(上)一、文件打开关闭#include<stdio.h>#include<stdlib.h>#include<string.h>int main101(void){ //以读的形式打开文件 FILE* fp = fopen("C:\\Users\\徐杰\\Desktop\\01.txt", "w"); if (!fp) { //1、找不到文件 2、没有权限 3、程序打开文件超出上限 printf("文件打开失败!!\n");原创 2021-03-03 08:43:05 · 75 阅读 · 0 评论 -
Day13.文件(下)
Day13.文件(下)一、块读写#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>int main0101(void){ //char arr[16] = "hello world"; int arr[] = { 888888,888888,888888,888888 }; FILE* fp = fopen("a.txt", "wb原创 2021-03-03 08:44:49 · 85 阅读 · 0 评论 -
Day14.快译通
Day14.快译通main.c#include "fun.h" int main(void) { DICT* p = (DICT*)malloc(sizeof(DICT) * WORDMAX); file_read(p); while (1) { word_inquiry(p); int flag = 0; flag = word_inquiry(p); if (flag != 1) { printf("没有找到该单词!\n"); }原创 2021-03-04 14:58:06 · 297 阅读 · 2 评论 -
Day15学生信息管理系统
main.c#include "fun.h"enum keys{ //log:录入 bro:浏览 find:查找 chan:修改 add:增加 del:删除 exit:退出 log=1,bro,find,chan,add,del,exit_}key;int main(void){ //初始化 init(); int i; while (1) { printf("请输入功能编号:"); scanf("%d", &i); getchar(); switch原创 2021-03-05 10:09:14 · 98 阅读 · 2 评论 -
Day16.贪吃蛇
Day16.贪吃蛇(有小BUG)一、小知识点改变光标位置函数:#include<Windows.h>void gotoxy(int x, int y){ COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}去掉控制台的光标://在main函数开始写这段代码CONSOLE_CURSOR_INFO cci;cci原创 2021-03-06 12:54:50 · 51 阅读 · 0 评论 -
Day17.C提高1
Day17、C提高11.typedef用法用typedef有利于提高代码的可移植性2.void用法1.void不能直接定义变量,因为编译器不知道分配多少内存给变量(当定义一个变量,编译器必须知道分配多少内存)2.对函数返回的限定,对函数参数的限定3.void* 无类型指针(主要用于数据结构的封装)3.sizeof用法sizeof(类型);sizeof(变量);//sizeof的返回结果是unsigned int//数组作为函数参数时,会退化为指向数组首元素的指针4.内存分区栈原创 2021-03-07 18:13:21 · 72 阅读 · 0 评论 -
Day18.C提高2
Day18.C提高2一、函数调用模型(需要自己理解的知识点)1.1 函数调用流程在经典的计算机科学中,栈被定义为一个特殊的容器,用户可以将数据压入栈中(入栈,push),也可以将压入栈中的数据弹出(出栈,pop),但是栈容器必须遵循一条规则:先入栈的数据最后出栈(先进后出).在经典的操作系统中,栈总是向下增长的。压栈的操作使得栈顶的地址减小,弹出操作使得栈顶地址增大。栈在程序运行中具有极其重要的地位。最重要的,栈保存一个函数调用所需要维护的信息,这通常被称为堆栈帧(Stack Frame)或者原创 2021-03-11 16:23:42 · 48 阅读 · 0 评论 -
Day19.C提高3
Day19.C提高3一、calloc和realloc//开辟一块内存空间,calloc自动将分配的内存置零 格式://calloc(所需内存单元数量,每个内存单元的大小)char* arr = (char*)calloc(10, sizeof(char));if (arr != NULL){ free(arr); arr = NULL;}/*realloc 格式:realloc(void* ptr,size_t size);ptr:之前用malloc或者calloc分配的内存地址,若原创 2021-03-14 12:03:18 · 37 阅读 · 0 评论 -
Day20.C提高4
Day20.C提高4一、一维数组#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>void test01(){ int arr[] = { 1,2,3,4 }; int* p = arr; //1.sizeof 2.对数组名取地址 &arr //以上两种情况下,数组名不是指向首元素的指针 //**除了以上两种之外,数原创 2021-03-21 16:34:37 · 54 阅读 · 0 评论 -
Day21.C提高5
Day21.C提高5一、结构体嵌套二级指针/*当创建结构体变量后,如果其中的成员为指针类型的话,就要将此变量开辟至堆空间,是因为在创建结构体后,程序在运行结束之后,对于结构体变量所占的内存空间就已经分配好了,分配的大小为4字节(也就是一个指针的)大小,如果不重新在堆空间中开辟内存的话,就会导致溢出,因此,一般情况下,看到使用指针类型的数据的时候,应该在堆空间中存储。*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include&原创 2021-03-30 08:52:54 · 48 阅读 · 0 评论 -
Day22.C提高6
Day22.C提高6一、函数指针#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>void func101(){ printf("hello world\n");}//函数名其实就是函数的入口地址void test101(){ //printf("函数入口地址:%d", func101); int* funcAddr =原创 2021-04-01 16:08:10 · 46 阅读 · 0 评论 -
Day23.C提高7
Day23.C提高7一、链表逆序//接上一次的代码(此处只附逆序函数)void Reverse_LinkList(struct LinkNode* header){ if (NULL == header) { return; } //创建辅助指针 struct LinkNode* pCurrent = header->next; struct LinkNode* pNext = NULL; struct LinkNode* pPrev = NULL; while (pCur原创 2021-04-04 19:41:57 · 74 阅读 · 0 评论 -
Day24.C提高(数据结构01)
Day24.C提高(数据结构01)001.动态数组简单实现#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//1.先把所需要的数据信息结构定义下来struct DynamicArray{ //数组存储元素的空间的首地址 void** addr; //存储数据的内存中最大能够容纳多少元素 int capacity;//容量 //原创 2021-04-27 12:30:46 · 82 阅读 · 2 评论 -
Day25.C提高(数据结构02)
C提高(数据结构02)001.单向链表(版本二)#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//链表结点数据结构struct LinkNode{ struct LinkNode* next;};//链表结构体struct LList{ struct LinkNode header;//头结点 int size;};原创 2021-04-29 19:49:13 · 87 阅读 · 0 评论 -
Day26.C提高(数据结构03)
Day26.C提高(数据结构03)01、队列概念队列是一种受限制的线性表(先进先出)队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表,允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,a3---an),那么a1就是队头元素,而an为队尾元素,这样我们就可以删除时,总是在a1开始,而插入时,总是在队列最后。02、队列的链式存储实现LinkQueue.h#pragma once#inc原创 2021-05-06 19:45:50 · 67 阅读 · 0 评论 -
Day27.C++01
Day27.C++01001.第一个程序(Hello World!!)#include<iostream>//标准输入输出库using namespace std;//使用命名空间std(打开一个叫std的房间)int main(){ //cout 标准输出 //<< 左移运算符 //endl 结束换行 cout << "Hello World!" << endl; system("pause");//阻塞功能 return EXIT原创 2021-05-18 20:36:15 · 101 阅读 · 0 评论 -
Day28.C++02
Day28.C++02001.作业案例_设计圆类求周长#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;const double pi = 3.14;//1.设计一个类,求圆的周长//周长公式 2 * pi * rclass Circle//class 代表声明一个类,后面紧跟的是类的名称{public://公共权限 //求圆的周长 //在类里面写函数 成员函数 double原创 2021-05-27 19:33:31 · 85 阅读 · 0 评论 -
Day29.C++03
Day29.C++03001.面向对象设计案例_立方体案例#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;/*设计立方体(Cube),求出立方体面积和体积分别用全局函数和成员函数判断两个立方体是否相等*/class Cube{public: //设置长 void setLong(int l) { Long = l; } //获取长 int getLong() {原创 2021-05-31 18:29:44 · 75 阅读 · 0 评论 -
Day30.C++04
Day30.C++04001.静态成员变量和静态成员函数#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Person{public: static int m_Age;//加入static就是 静态成员变量,会共享数据 //静态成员变量,在类内声明,类外进行初始化 int m_A; //静态成员函数 //静态成员函数不可以访问 普通成员变量 //普通成员函数 可原创 2021-06-06 18:27:48 · 100 阅读 · 0 评论 -
Day31.C++05
Day31.C++05001.加号运算符重载#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Person{public: Person() :m_A(1),m_B(1){} Person(int a,int b):m_A(a),m_B(b){} //+号运算符重载 成员函数 /*Person operator+(const Person& p) { P原创 2021-06-14 18:41:29 · 110 阅读 · 0 评论 -
Day32.C++06
Day32.C++06001.关系运算符重载(==)#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>using namespace std;class Person{public: Person(string name,int age) { this->m_Age = age; this->m_Name = name; } //==运算符重载(!=运算符原创 2021-06-19 17:42:52 · 66 阅读 · 0 评论 -
Day33.C++07
Day33.C++07001.静态联编和动态联编(引出多态的概念)#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std; class Animal{public: virtual void speak() { cout << "动物在说话" << endl; }};class Cat:public Animal{public: void speak(原创 2021-07-15 15:58:23 · 54 阅读 · 0 评论 -
Day34.C++08
Day34.C++08001.函数模板的基本使用模板概论:C++提供了函数模板,所谓函数模板,实际上就是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。代码示例:#define _CRT_SECURE_NO_WARNINGS#include<iostream>u原创 2021-07-22 21:56:42 · 110 阅读 · 0 评论 -
Day35.C++09
Day35.C++0901.类型转换-静态类型和动态转换和常量转换#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;//静态转换//基础类型void test01(){ char a = 'a'; double d = static_cast<double>(a); cout << "d = " << d << endl;}//父原创 2021-07-27 10:29:39 · 101 阅读 · 0 评论 -
Day36.C++提高01(STL)
Day36.C++提高01(STL)01.STL基本概念(Standard Template Library)STL基本概念:STL从广义上分为:容器(container),算法(algorithm),迭代器(iterator),容器和算法之间通过迭代器进行无缝连接。STL几乎所有的代码都采用了模板类或者模板函数,这相比传统的由函数和类组成的库来说提供了更好的代码重用机会。STL标准模板库,在我们C++标准程序库中隶属于STL的占到了80%以上。STL六大组件简介:STL提供了六大组件,彼此之间原创 2021-08-04 10:30:51 · 149 阅读 · 0 评论 -
Day37.C++提高02(STL)
Day37.C++提高02(STL)01.stack栈队列(先进后出)#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<stack>void test01(){ stack<int> s; s.push(10); s.push(20); s.push(30); s.push(40); while (s.size()) { cout &原创 2021-08-07 10:25:47 · 142 阅读 · 0 评论 -
Day38.C++提高03
Day38.C++提高0301.函数对象(仿函数)总结:- 创建一个类,重载()- 函数对象通常不定义构造函数和析构函数,所以在构造和析构时不会发生任何问题,避免了函数调用的运行时问题- 函数对象超出普通函数的概念,可以在类中保存自己的状态。- 函数对象可以内联编译,性能好- 模板函数对象使函数对象具有通用性- 函数对象可以作为函数参数来传递 02.谓词(仿函数的返回值为bool类型)概述:- 谓词可分为一元谓词和二元谓词- 一元谓词是指有一个参数,二元谓词有两个参数代码:#原创 2021-08-10 18:26:46 · 120 阅读 · 0 评论