自定义博客皮肤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)
  • 收藏
  • 关注

原创 字符函数和字符串函数

size_tstrlen(constcharstring注意:①strlen函数返回的是在字符中'\0'前面出现的字符个数(不包括'\0')②参数指向的字符串要以'\0'结束③注意函数的返回值是size_t,是无符号的。

2023-11-18 21:20:38 111

原创 回调函数——qsort的模拟实现

/qsort函数的使用//qsort函数的使用者得先实现一个比较函数int main()i < sz;3.使用回调函数,模拟qsort函数的实现(使用冒泡排序的方法)//qsort的模拟实现int i = 0;for (i = 0;for (j = 0;for (i = 0;i < width;i++)buf1++;buf2++;int i = 0;for (i = 0;

2023-11-08 17:16:53 70

原创 数据在内存中的存储(深度剖析)

char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数类型的意义:1.使用这个类型开辟内存空间的大小(大小决定了使用范围)2.如何看待内存空间的视角什么是大小端:大端(存储)模式:是指数据的低位保存在内存的高地址中,数据的高位保存在内存的低地址中。

2023-04-04 20:07:47 427

原创 初级结构体的简单介绍

int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。

2023-03-21 23:15:22 106

原创 初级指针的简单介绍

1)指针是内存中一个最小单元的编号,也就是地址2)平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量指针就是地址,口语中说的指针变量指的就是指针。指针变量:用来存放地址的变量(存放在指针中的值都被当成地址处理),可以通过&(取地址操作符)取出变量的内存地址,把地址存放在一个变量中,这个变量就是指针变量。指针的大小在32位平台下是4个字节,在64位平台上是8个字节int main()int a=10;

2023-03-21 22:39:56 93

原创 操作符详解

逻辑反操作- 负值+ 正值& 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反-- 前置、后置--++ 前置、后置++* 间接访问操作符(解引用操作符)(类型) 强制类型转换&取地址。

2023-03-15 23:48:16 41

原创 数组的基本概念

数组在创建的时候,如果不想指定数组的大小就要进行初始化,数组的元素个数根据初始化的内容来决定。如果数组的下标小于0,或者大于n-1,说明数组越界访问了,超出了数组合法空间的访问。1.sizeof(数组名),数组名包括整个数组,计算整个数组的大小,包括‘\0’数组的下标规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1。二维数组在内存中也是连续存放的,且随数组下标的增长,地址是由低到高变化的。在创建数组的同时给数组的内容一些合理的初始值(初始化)数组的下标是有范围限制的。

2023-03-15 20:45:20 36

原创 函数的简单介绍

strcpyint main()//将arr1的内容拷贝到arr2中return 0;memsetint main()//设置内存的时候,以字节为单位//将字符串arr的第二个位置后的3个字符替换成'Y',heYYY worldreturn 0;注:但是库函数必须知道的一个秘密就是:使用库函数,必须包含 #include 对应的头文件。自主学习库函数可参考http://en.cppreference.com(英文版)

2023-02-13 15:45:12 52

原创 循环语句和分支语句

也就是本次循环中的continue后面的代码不会再执行,而是直接跳转到while语句的判断部分,开始进行下一次循环的入口判断。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。此段代码无打印结果,因为条件判断语句中的"="是赋值,并非判断,所以循环0次。break语句的实际效果是把语句列表划分为不同的分支部分。1.for循环中的初始化部分,判断部分,调整部分省略。

2023-02-07 16:53:16 47

原创 从零开始的C语言(下)

1.常见关键字1.1关键字typedef1.2关键字static1.2.1修饰局部变量1.2.2修饰全局变量1.2.3修饰函数2. #define定义常量和宏2.1#define定义标识符常量2.2 #define定义宏3.指针3.1内存3.2指针变量的大小4.结构体

2023-01-19 20:16:54 58

原创 从零开始的C语言(上)

C语言提供了一个枚举类型enum 标识符{//枚举常量};枚举常量的默认值是从0开始的,依次向下递增1.4.字符串,转义字符,注释4.1字符串字符串的结束标志是一个'\0'的转义字符.在计算字符串长度时'\0'是结束标志,不算做字符串内容strlen---库函数,用来求字符串的长度,计算的是'\0'之前出现的字符串个数//数组arr2没有'\0',所以计算的值是一个随机值。

2022-12-17 21:58:43 80

原创 笔试强训day4

若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存。&x[9][9]-&x[4][9]=5*N---->D7--->215--->N=215/5=43--->有43列。常量指针:const在*前,const指针修饰的是解引用的结果,其指向执行空间的内容不能发生改变。fib(2):fib(1)+fib(0)=3,递归三次(自己本身也要算一次)储地址为Oxf8b8221c,则X[7][7]的存储地址为()。对于E选项:x指针的指向和指针指向的空间的内容都不能发生改变。

2022-11-26 15:56:15 158

原创 笔试强训day3

大端:00 00 00 01。)中,ch=getchar()是一条初始化语句,只获取一次值。因为switch(x%2) case(1)没有终止循环的语句,所以会继续执行case(2)语句。指针常量:不能修改指针的指向,但是可以通过指针解引用修改其所指向空间的值。常量指针:指针所指向的空间的值是一个常量,不能修改其值,可以修改其指向。int *p[4]是一个int类型的指针数组,是数组,数组大小为4。//数组首元素地址偏移量5个单位,指向 f 的地址。D 是一个数组指针,是指针,每个指针指向一个int类型。

2022-11-24 12:26:48 166

原创 笔试强训day2

szY是指针,指针内容被修改-->指针指向发生改变,但常量字符串"abc"未发生改变,指针szY的指向没有发生改变。7. 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整。(ptr-1) 即原来取得的地址再-1,所以最后取得的是数组最后一个元素的地址。所以 *b = 2, *(b+2) = 4// 取第四个元素的地址,并解引用。(2)p2是常量指针 指针所指向的值不能发生改变,所以(6)err。即取数组的最后一个元素的地址的后一个地址。

2022-11-23 14:14:28 443

原创 笔试强训day1

3), || 或运算,一个表达式为真,即为真.第一个if语句执行完以后b=3,所以第一个表达式为真,不会再执行判断第二个表达式,而是直接进入下一条语句.第一个if语句: if(a == 1 && b++==2), &&与运算,两个表达式结构都为真,结果为真. b++==2,后置++,先判断再加加,所以b++==2为真。6. 在 int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};int a=10;int 占四个字节,范围大小:-2^31-1---+2^31-1。

2022-11-21 23:47:21 476

原创 vector

1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用的连续存储空间来存储元素。它的大小是可以动态改变的,而且它的大小会被容器自动处理。3.vector使用动态分配数组来存储它的元素。4. vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。5. vector占用了更多的存储空间,为了获得管理存储空间的能力,并且以一种有效的方式动态增长。

2022-11-14 21:23:29 180

原创 笔试强训day13

/const 封锁的是*p,是常量,所以p的指向是可以修改的,但是p所指的空间的值不能改变.D. 虚函数不能是静态成员函数.因为静态函数没有this指针,而调用虚函数要靠this指针调用对象的信息调用此虚表。2)在32位机上,一个指针大小为4,在64位机上,一个指针大小为8,它的大小只和它的类型有关,而p是一个指针。4. 当一个类对象的生命周期结束后,关于调用析构函数的描述正确的是()一个类对象的执行过程是先调用基类的构造函数,再调用派生类的构造函数。D 先调用基类的析构函数,后调用派生类的析构函数。

2022-11-02 00:07:00 370

原创 笔试强训day12

2.析构函数的作用:对象在销毁时会自动调用析构函数,完成对象中资源的清理工作---问题:并不是所以对象都是从堆上new出来的。C 引用声明后,引用的对象不可改变,对象的值可以改变,非const指针可以随时改变指向的对象以及对象的值。B.拷贝构造函数只有一个形参,且必须是类类型对象的引用,若未显示定义,编译器会生成默认的拷贝构造函数。A.对象实例化时编译器会自动调用对应的构造函数,若未显示定义,编译器才会自动生成一个无参构造函数。C 对象是类的实例,一个对象必须属于一个已知的类。

2022-10-24 17:28:28 695

原创 笔试强训day11

笔试强训day11

2022-10-24 00:28:28 521

原创 笔试强训day7

笔试强训

2022-10-18 23:48:56 441

原创 笔试强训day6

笔试强训day6

2022-10-18 11:42:52 258

原创 笔试强训day5

笔试强训

2022-10-16 20:57:38 323

原创 7-11 学投资分数 10

7-11 学投资分数 10

2022-09-25 19:46:53 103

原创 7-10 java基本语法-整数四则运算

7-10 java基本语法-整数四则运算

2022-09-25 18:08:43 405

原创 模板初阶.

模板

2022-09-12 19:52:02 48

原创 C/C++内存管理

C/C++内存管理

2022-09-11 13:57:43 260

原创 类和对象(下)

类和对象

2022-09-07 16:00:57 285

原创 类和对象(上)

类的对象

2022-08-21 16:45:35 85 1

原创 Linux常见指令及权限理解

Linux常见指令及权限理解

2022-08-21 15:30:17 328

原创 C++基础(续)

内联函数,auto类型关键字,指针空值nullptr

2022-08-16 22:45:10 226

原创 C++基础

C++基础知识点

2022-08-15 22:01:57 274 2

原创 二叉树的基本概念

二叉树的相关概念

2022-06-13 22:13:37 1424

原创 栈和队列基础

1.栈1.1栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。// 下面是定长的静态栈的结构,实际中一般不实用,所以我们主要实现下面的支.

2022-05-25 21:27:04 47

原创 顺序表和链表

顺序表和链表

2022-05-20 16:17:04 263 2

原创 动态内存管理

1. 为什么存在动态内存分配我们已经掌握的内存开辟方式有int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间上述的开辟空间的方式有两个特点:1. 空间开辟大小是固定的。2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。2. 动态内存函数的介绍2.1 malloc和freevoid* malloc (size_t size);C语言提供了一个动态内存开辟的函数:这个函数向内存申

2022-04-14 17:24:32 27

原创 文件的操作

1. 为什么使用文件?使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。2. 什么是文件我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)2.1文件名一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀例如: c:\code\test.txt为了方便起见,文件标识常被称为文件名。3. 文件的打开和关闭3.1 文件指针缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。每个被使.

2022-04-14 15:41:01 76

原创 结构体,枚举,联合

结构体1 结构体的声明1.1 结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。1.2 结构的声明struct tag{member-list;}variable-list;例如描述一个学生:struct Stu{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号}; //分号不能丢1.3 特殊的声明在声明结构的时候,可以不完全的声明。1...

2022-04-12 22:52:24 33

原创 程序的编译(预处理操作)+链接

1.编译本身分为几个阶段:看代码sum.cint g_val = 2016;void print(const char *str){printf("%s\n", str);}test.c#include <stdio.h>int main(){extern void print(char *str);extern int g_val;printf("%d\n", g_val);print("hello world\n");return 0;}.

2022-04-12 21:58:20 357

原创 库函数的模拟实现

1.模拟实现memmove头文件#include<assert.h>#include<stdio.h>函数void* my_memmove(void* dest, const void* src, size_t count){ assert(dest && src); void* ret = dest; if(dest<src) { //从前向后 while (count--) { *(char*)dest .

2022-04-12 21:11:09 44

原创 数据在内存中的存储

数据在内存中的存储

2022-03-03 13:48:40 58

空空如也

空空如也

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

TA关注的人

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