- 博客(30)
- 收藏
- 关注
原创 cpp命名空间 输入输出 缺省参数 函数重载
文章目录1.命名空间命名空间到底是什么呢?为什么C++为什么要引入命名空间?如何定义命名空间?命名空间支持嵌套吗?命名空间怎么使用?2.c++中的输入输出输入:输出:3.缺省参数缺省参数概念:(函数带默认值)缺省参数的分类:缺省参数的几个特性:4.函数重载什么是函数重载?函数重载的规则:函数重载的作用:面试题1.C语言中为什么不能支持函数重载?2.C++中函数重载底层是如何处理的? 1.命名空间 命名空间到底是什么呢? 命名空间是一个容器,这个容器主要是为了识别其下的类和函数。一旦定义了命名空间,它下面的
2022-03-23 14:50:59
1814
8
原创 数据结构之c语言篇概念知识梳理总结
什么是时间复杂度 递归:单次递归乘上总的递归次数 什么是空间复杂度 在这个算法当中,函数创建的变量(对象)的个数关于问题规模N的数学表达式 递归:单次递归乘上递归深度(递归深度不是递归次数) 一般常见:O(N) O(1) O(N^2) 考察方式 二分查找 各种排序的时间空间复杂度 实现一个算法,有时间空间复杂度的要求 按照特定时间空间复杂度对算法进行优化 ...
2022-01-08 19:24:25
1824
7
原创 gcc编译的四个过程(怕自己忘了写下来)
预处理 宏替换 头文件展开 删除注释 条件编译 展示命令 gcc -E 文件名.c -O 文件名.i 编译 让源文件产生汇编代码 展示命令 gcc -S 文件名.c -O 文件名.s 汇编 将汇编代码转换成二进制机器代码 展示命令 gcc -C 文件名.c -O 文件名.o 链接 将若干个二进制代码(.o)或者库文件 链接起来生成可执行程序或者库文件 平时直接用这个命令就行: 展示命令 gcc 文件名.o -O 新文件名(可执行程序的名字) ...
2021-12-09 21:06:46
321
原创 链表的相交和带环问题详解
判断链表是否相交 思路:如果两个链表的最后一个节点是同一个节点,那一定相交 注意:这里不是值相等就是同一个节点. 这个代码我就不敲了,比较简单,而且求交点的代码里面有 求两个相交链表的交点 //给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 /** * Definition for singly-linked list. * struct ListNode { * int val; * st
2021-12-03 19:28:21
1388
2
原创 双向带头链表实现代码
概念:双向链表是每个结点除后继指针外还有一个前驱指针。和单链表类同,双向链表也有带头结点结构和不带头结点结构两种,带头结点的双向链表更为常用;另外,双向链表也可以有循环和非循环两种结构,循环结构的双向链表更为常用。 头文件.h ps:头文件中函数声明里面的参数和定义的时候写的必须一致,否则就会报错 长这样的报错可以检查一下参数还是函数名写错了,大小写啥的都看一下 #pragma once typedef int DataType; typedef struct DListNode { struct
2021-11-29 20:43:02
638
3
原创 线性表之单链表史上无敌傻瓜教程无敌无敌细节
什么是链表? 链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。说到这里你应该就明白了,链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元
2021-11-24 18:58:48
972
7
原创 史上最强线性表之顺序表傻瓜教学无敌无敌无敌详细教程
什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改等基本操作。 换而言之通常来说就是一个用malloc在堆上申请空间的数组,用来保存数据,并且可以增删查改各种骚操作的功能性产品. 头文件: #pragma once typedef int DataType; // 动态顺序表: 底层的空间从堆上动态申请出来的 typedef struct SeqList { DataType* arr; // 指向存储元素空间的起始位置 i
2021-11-22 21:12:06
541
1
原创 malloc实现原理 以及malloc/calloc/realloc区别详述
malloc是一个动态分配内存的函数,还可以通过free释放内存空间。 如果我们想分析一下malloc的源码,这其实不是一会就能看懂的,但是我们可以讨论一下malloc的简单实现。 在这之前,我们先来看一下虚拟内存空间 虚拟内存空间时操作系统实现内存管理的一种机制。操作系统为每个进程维护一个虚拟内存空间。操作系统会将虚拟内存和实际的物理内存进行映射,CPU芯片上叫做存储器管理单元(Memory Management Unit,MMU)的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容是由操作
2021-11-21 19:40:08
784
原创 数据的存储学习总结
1. 数据类型详细介绍 浮点数家族:double float 2. 整形在内存中的存储:原码、反码、补码 原码 直接将二进制按照正负数的形式翻译成二进制就可以。 反码 将原码的符号位不变,其他位依次按位取反就可以得到了。 补码 反码+1就得到补码。 正数原码就是补码,负数符号位不变原码按位取反再加一就是补码 补码是为了将减法转换成加法. 大端小端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的
2021-11-04 00:09:24
627
原创 数组应用之 三子棋小游戏(我写的第一个小游戏)
写这段代码可谓是历经一番波折,各种错误低级高级,总之报错不停,中途烦的我不想写了都,结果睡一觉第二天还是耐心的理了思路,在细节上找错误,由于是数组的应用较多,数组又有许多易错的点,所以一定要多加注意. 先说一下总结的关于数组易错点: 注意形参中数组写arr[],数组中最注意的就是格式,一旦有错就会不停报错 传参时实参arr不带[] 形参写做int* arr[] 解引用时要么*arr要么arr[] 下面这个错误就是解引用格式错误引起的: —我这一步为什么读取位置 0x00000009 时发生访问冲突了,我琢
2021-10-28 18:12:59
1777
原创 冒泡排序注意事项
//冒泡排序 #include<stdio.h> #include<stdlib.h> #include<string.h> //注意形参中数组写arr[],数组中最注意的就是格式,一旦有错就会不停报错 void Bub(int arr[], int size){ for (int i = 0; i <= size - 1; i++){ for (int p = 0; p < size - 1-i; p++){ if (arr[p]>arr[
2021-10-26 16:33:17
595
原创 关于函数递归,一些例子和练习
//编写一个函数 reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列,不是逆序打印。 //要求:不能使用C函数库中的字符串操作函数。 //这里我将string简化为a //这个代码今天写出来了但还是报错 #include<stdio.h> #include<stdlib.h> #include<string.h> void reverse_string(char * a){ //p保存首元素字符,q保存尾元素
2021-10-25 19:16:59
180
原创 动画效果打印iloveonly
//动画效果打印 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<windows.h> int main(){ char arr1[] = { "I love only!" };//注意此处数组类型为char类型 char arr2[] = { "############" }; int a = 0; int b = strlen(arr1) - 1; printf("
2021-10-13 18:52:31
205
原创 2021-09-24比较两个数字大小
//输出两个数的较大值 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main(){ int num1 = 0; int num2 = 0; printf("请输入比较的数字:num1 num2\n"); scanf("%d %d" ,&num1,&num2); if (num1 >num2){ printf("较大值为%d\n", num1);
2021-09-24 00:28:43
447
原创 随笔式日志,记录学习中疑惑点和错误点,这条会一直更新,很长
记一些乱七八糟的笔记要点,无聊时候可以翻看: 1.在代码块内变量如果不做初始化,就是随机值. 2.对指针解引用代表的是指针所指向的目标. 3.纠错问题: 1.static修饰,局部变量,全局变量,函数。static修饰变量是可以改变的,const修饰的变量不能改变。 static修饰局部变量,生命周期延长。只在第一次调用该函数时进行初始化,后续调用时,该变量使用前一次函数调用完之后保存的值。 static修饰全局变量时,让该变量具有文件作用域,只能在该文件中使用。 static修饰函数时,该函数也只能在该文
2020-10-20 01:49:36
172
原创 经典的二分查找问题
//二分查找,在一个有序数组(升序)里找到目标值所在的位置,最后返回值是下标. #include<stdio.h> #include<windows.h> #define NO -1 int BinSearch(int num,int X,int arr[]) { int start = 0; int end = num - 1; while (start<=end){ int middle = (end + start) / 2; if (arr[middl
2020-10-20 01:43:56
331
1
原创 打印1~100之间3的倍数
#include<stdio.h> #include<windows.h> int main() { //打印1~100之间3的倍数 int i; for (i = 1; i <= 100; i++){ if (i % 3 == 0){ printf("%d为3的倍数\n", i); } } system("pause"); return 0; }
2020-10-13 19:18:52
1178
原创 制作一个简易可爱的小计算器
最近新创了一个小计算程序,主要运用了简单的函数,if选择语句,while循环这几个知识点,今天的记录就如下了. 写这个代码时出现了一个问题,printf后面的Q写成了&Q,计算结果总是一长串数字,查询发现这一长串数字其实是Q的地址,修改之后成功运行了,并且加入了while(1),可以无限次数的使用计算器,形成无限循环! #include <stdio.h> #include <windows.h> #pragma warning (disable:4996) //加法函数 i
2020-09-28 22:21:33
668
原创 不创建临时变量,交换两个数的内容
//不创建临时变量,交换两个数的内容 #include<stdio.h> int main() { int a = 1, b = 2; a = a + 1; b = b - 1; printf("%d %d\n", a, b); return 0; }
2019-11-16 18:00:12
149
原创 将两个整型变量的值进行交换
//将两个整型变量的值进行交换 #include <stdio.h> int main() { int a, b, c; a = 1; b = 2; printf("a=%d, b=%d\n", a, b); c = a; a = b; b = c; printf("a=%d,b=%d\n", a, b); return 0; } ...
2019-11-16 17:59:21
919
原创 打印乘法口诀表
//乘法口诀表 #include<stdio.h> int main() { int i, j; for (i = 1; i < 10; i++)//被乘数1到10 { for (j = i; j <10; j++)//乘数i到10 { printf("%d*%d=%2d ", i, j, i*j); printf("\n"); } printf("\n"); }...
2019-11-16 17:28:40
247
原创 将三个数从小到大输出
//将三个数从小到大输出 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int main() { int a, b, c, t; printf(“输入三个数字用空格隔开:”); scanf("%d%d%d", &a, &b, &c); if (a > b...
2019-11-16 17:25:19
469
原创 求两个数的最大公约数小程序
//求两个数最大公约数 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a = 0, b = 0, t = 0; printf(“请输入两个一百以内数字a,b:\n”); scanf("%d%d", &a, &b); //判断交换使b比a大 if (a > b){ int m; ...
2019-11-16 17:24:10
552
原创 判断闰年.
//打印1000到2000年之间的闰年 #include<stdio.h> int main() { int a = 0; int b = 4; int c = 100; for (a = 1000; a <= 2000; a++){ if (a%b == 0 & a%c != 0) { printf(“闰年:%d\n”, a); } int d = 1000; int ...
2019-11-16 17:22:02
220
原创 判断闰年小程序
//判断闰年 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a, i; int b = 4; int c = 100; for (i = 0; i <= 100; i++){ printf(“输入年份:\n”); scanf("%d", &a); if (a%b == 0 & ...
2019-11-16 17:21:25
594
原创 求一串数字的最大值
#include<stdio.h> int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int len = sizeof(arr) / sizeof(arr[0]); int m, i, max; printf(“求出这串数字的最大值:\n”); for (m = 0; m < len; m++) //打印这个数组 {...
2019-11-16 17:20:37
1090
原创 六位密码登录小程序
//数字密码登录 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { for (int i = 0; i < 3; i++)//三次输入机会 { printf(“请输入密码:\n”); //使用一个数组保存用户输入的密码 char passwd[1024] = { 0 }; scanf("%s", pass...
2019-11-16 17:19:38
907
原创 一些写在最开头的东西
写在前面 希望看到这篇博客的各位认识我,向大家简单介绍我自己,这个超级无敌小可爱:侯瑾华(2000.12.14)。 一个激进的自我精进者,目前(2019.11.13.)就读于西安科技大学,本科在读学生一枚。 可能你没听过我的专业名字,电子科学与技术,一个走在时代前沿的高端专业哈哈哈,开个玩笑。 我是真的觉得这个专业具有非常广阔的前景,但很遗憾,我个人对此兴趣不大。 上大学前很多人说过,选...
2019-11-13 13:54:47
232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅