- 博客(35)
- 收藏
- 关注
原创 Java对象的内存解析
引言:对象是java的一个核心,如果我们能够搞清楚这些对象在内存中是如何存放的,那我们对于java的理解会更加清晰和深刻我们通过一段代码来分析java对象的内存分配:public class PersonTest { public static void main(String[] args) { Person p1 = new Person(); p1.name = "Tom"; p1.isMale = true; System.out.println(p1.na.
2022-03-30 17:54:19
840
原创 C语言—动态内存分配相关知识详解
一.前言我们之前编程时创建的一些变量,你知道它们都是存放在内存的哪里吗?其实,不同的类型的变量在内存中存储的位置是不一样的。一起来看一下:那么为什么要有动态内存开辟这一说呢?有时候我们需要的空间大小在程序运行的时候才能知道,那数组在编译时开辟空间的方式就不能满足了,这时候就需要我们的动态内存分配了。动态内存开辟主要要求我们了解和掌握四个函数1.malloc2.calloc3.realloc4.free二.动态内存函数详解及其使用2.1 m...
2021-11-28 12:57:03
498
原创 C语言之结构体(后续)(位段+共用体+枚举)
接上一篇~~走起目录一.位段二.枚举三.共用体(联合体)正文开始一.位段什么是位段呢?位段,C语言允许在一个结构体中以位(二进制位)为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“”位域“”。利用位段能够用较少的位数存储数据。(位段不具有跨平台性)位段的声明和结构体是类似的,但是有两个不太一样的地方1.位段的成员必须是int,unsigned int 或者signed int 类型。(同一个位段里的成员类型尽量保持一致)2.形.
2021-11-21 11:06:03
937
原创 C语言之结构体(内存对齐+位段+共用体+枚举)
我们之前学习过整型,字符型,浮点型....那么比如说我想要描述一个学生,这个学生有如下属性:学号,性别,选修课程。那我们该怎么声明这个类型呢?这时候就要用到我们自定义的类型——结构体目录一.结构体的基础知识1.1 结构体的声明 1.2 结构体的自引用1.3 结构体的重命名1.4 结构体变量的初始化二.结构体内存对齐2.1 内存对齐规则练习2.2 自定义对齐数2.3 offsetof函数三. 结构体传参...
2021-11-20 19:53:09
595
原创 C语言内存函数概述及其模拟实现(下)
一.memcpy函数打开c.plusplus.com看一下关于这个函数的基本使用方法使用方法:这个函数不仅仅可以拷贝整数,还可以是其他的类型呀~一起来看看接下来一起来模拟实现一下这个函数:函数参数原型:源码:#include<stdio.h>#include<string.h>#include<assert.h>struct S{ char name[20]; int age;...
2021-11-09 08:45:35
166
原创 C语言内存函数概述及其模拟实现(中)
今天来为大家介绍结果相较于上一篇更加灵活的内存函数也可以理解为是他们的升级版一.strncpy函数打开cplusplus.com查看该函数
2021-10-26 16:28:58
137
原创 C语言内存函数概述及其模拟实现(上)
一.strlen函数的实现strlen函数是用来计算字符串长度的打开cplusplus.com - The C++ Resources Network这里介绍三种模拟实现strlen函数的方法1.计数器方法int my_strlen(char *arr){ int count = 0; while(*arr = '\0') { arr++; count++; } retu..
2021-10-23 18:05:46
141
原创 链表的相关操作实现及其详解(含源码)
链表顺序表:一组地址连续的存储单元依次存储线性表的数据元素,通常称这种结构为顺序表。特点:逻辑上相邻的数据,其物理次序也是相邻的。线性表一般包括:基地址以及长度。二.顺序表的定义及其相关操作实现1.顺序表的定义代码实现:typedef int SLDataType; //统一修改,比如你想存放double,char等等。typedef struct SeqList{ SLDataType * a; int size; ..
2021-10-20 21:43:31
423
原创 指针笔试面试题讲解
读代码写出结果1. int a[4] = { 1, 2, 3, 4 }; int *ptr1 = ( int * )(&a + 1); int *ptr2 = (int *)((int)a + 1); printf("%x %x", ptr1[-1], *ptr2); 分析一下这串代码:在这里,我们分析清楚了ptr1 和ptr2指向的是哪里。接下来我们看看打印的这两个是什么样子的东西。看打印结果:2. char *...
2021-10-16 17:21:55
359
1
原创 (套娃篇下)C:奇妙的指针 回调函数机制+qsort函数排序(很强大)+qsort函数的模拟实现
一.qsort函数排序法引入:还记得我们之前学习的冒泡函数嘛?冒泡函数排序源代码://冒泡函数void Bubble_sort(int arr[], int sz){ int i = 0; int j = 0; for (i = 0; i < sz - 1; i++) { for (j = 0; j < sz - i - 1; j++) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]
2021-10-10 23:53:08
171
原创 (套娃篇中)C:奇妙的指针 函数指针+函数指针数组+指向函数指针数组的指针
一.函数指针什么时候函数指针哇?没错, 就是指向函数的指针。函数也有地址的嘛?当然啦,当然啦,一起来看看看,这不就是函数的地址函数指针的写法详解:来验证一下:编译顺利通过,写法正确~~。...
2021-10-08 21:19:30
271
原创 (套娃篇上)C:奇妙的指针 指针类型+指针数组+数组指针+数组和指针的传参
一.什么是指针?指针其实就是个变量,这个变量里面存放地址。但是指针是有类型的,不同的指针类型决定了指针加减整数移动的步长。我们来看一段代码如果是char类型呢所以,你看,不同的指针类型决定了指针加减整数时候移动的步长double*改变的则是八个字节,我们可以自己去验证一下。二.指针类型2.1字符指针字符指针的类型一般为“ char* ”。这里是打印的结果:那么我们来验证一下pc里面存放的是不是pc的收元素的地址呢?...
2021-10-08 10:17:15
142
原创 数据结构——栈
目录一.栈的相关概念:二.栈的相关操作 2.1操作概述:初始化;销毁栈;判断栈是否为空;求栈的长度;取栈顶元 素;栈置空操作;入栈;出栈。 2.2 顺序栈上的一些操作(栈的顺序存储) 2.3栈的链式表示和实现三.习题练习(来几个题目练一练)一.栈的相关概念:1.1 定义:限定只能在表的一端进行插入和删除运算的线性表(只能在栈顶操作)。 1.2 逻辑结构:与线性表相同,仍为一对一...
2021-09-26 23:08:26
1621
原创 数据结构—链表的基本操作
一、单链表的初始化算法思想:创建一个新结点,用L指向这个结点作为头结点,再将头结点的指针域置为空。Status InitList_L( LinkList &L){ L = (LinkList) malloc (sizeof(Lnode)); //开辟一个新结点 L -> next = NULL; return OK;}这里用到了malloc函数,是关于C语言动态内存分配这块儿的,有兴趣可以看之前的文章:C语言——动态内存分配_慢慢~漫漫的博客-优快云
2021-09-15 23:02:58
904
原创 数据结构—单链表的销毁和清除
一、单链表的销毁先来初始化一个链表//单链表的初始化typedef struct{ char num[80]; char no[30]; int score;}ElemType; typedef struct Londe{ ElemType data; //数据域 struct Londe *next; //指针域}Londe , *LinkList; Status InitList_L(LinkList &am
2021-09-10 22:07:19
6942
3
原创 C语言——优化后的冒泡排序法
冒泡排序法是我们接触到的比较经典的算法思想了。问题描述:我们要把9,7,8,6,5,4,3,2,1,0升序输出。#include<stdio.h>void paixu(int arr[] , int sz);int main(){ int i; int arr[] = {9,8,7,6,5,4,3,2,1,0}; int sz = sizeof(arr)/sizeof(arr[0]); //求出数组的长度 paixu(arr , sz);
2021-08-25 21:26:33
401
原创 C语言——汉诺塔问题(递归)
问题描述:有三根直杆X,Y,Z。X杆上有n只盘子,每次移动一块盘子,小的只能叠在大的上面,将所有盘子从X经由Y杆全部移动到Z杆上。
2021-08-24 10:45:48
257
原创 C语言——关于函数,指针和数组
一.1.1 指向函数的指针。int (*p) (int , int ) 这里*p是指针,指向的是一个函数{ int() (int , int ) }; 这个函数的两个参数是int型,返回值也是int型。1.2指向函数指针的数组。int (*p[4]) (int , int )这里要注意,“[] “比“*”,所以这里的p先和[]结合,是一个数组(这么通俗的说,只是为了方便理解)。所以这里 p[4] 是一个数组,指向的是一个函数指针{ int(*) (int , int..
2021-08-10 19:44:44
155
原创 Python学习(五)
一、字符串判断操作isidentfier():判断指定的字符串是不是合法的标识符issapce():判断指定的字符串是否全部由空白字符组成isalpha():判断指定字符串是否全由字母组成isdecimal():判断指定字符串是否全部由十进制的数字组成isnumeric():判断指定的字符串是否全部由数字组成isalnum():判断指定字符串是否全部由字母和数字组成s = 'fafasdas+'print(s.isalnum())print(s.isidentifier())pr
2021-08-06 22:22:37
223
原创 Python推导式创建
有时候我们使用推导式会提高我们代码的效率第一种:列表推导式#找出1到100里面可以被5整除的数#列表表达式解决y = [x*2 for x in range(1,50) if x%5 == 0]print(y)#for循环解决y = []for x in range(1,50): if x%5 == 0: y.append(x*2)print(y)#稍微复杂一点的#打印(1,1),(1,2,).........numbers = [(row,col
2021-08-03 22:33:48
289
原创 Python学习(四)
继续接着列表来看1.1 列表的切片操作lst = [10,20,30,40,50,60]print(lst[1:6:1]) #方括号里从左至有依次是start:1;stop:6;步长:1(默认为1)#切片后的列表会产生一个新的对象lst = [10,20,30,40,50,60]lst2 = lst[1:6:1]print(id(lst))print(id(lst2)) #打印出来的两个地址不同lst = [10,20,30,40,50,.
2021-08-02 22:27:06
232
原创 C语言编程试题练习(猴子吃桃)
题目:猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。猴子吃桃 天数 第N天 第N-1天 第N-2天 ....... 原有的桃子 1 4 10 ........ 由此我们推出一个后一天的桃数和前一天桃数的一个关系式:第N-1天的桃子数 = (第N天的桃
2021-08-01 23:33:23
895
2
原创 Python学习(三)
一、1.1 break语句的使用break语句:跳出当前的循环,进行下面语句的执行'''输入密码,判断正误,三次输入机会'''#for语句for item in range (3): key = input('请输入您的密码:') if key == '8888': print('密码正确') break else: print('密码不正确') #当输入的密码为‘8888’时,循环终止.
2021-07-31 20:08:29
305
原创 Python学习(二)
程序的三种组织结构顺序结构;选择结构;循环结构一、顺序结构顺序结构比较简单,按照正常的逻辑进行就好。num_a = 1num_b = 2sum = num_a + num_bprint(sum)二、选择结构2.1 单分支结构if 条件表达式: 条件执行体来看一个“存款”的例子money = 1000get = int(input('请输入您要取款的金额:'))if money > get: get = money - ge...
2021-07-30 18:51:05
379
原创 Python学习(一)
一、input函数input函数:用来接收用户所输入的内容。a = input('请输入一个整数:')print(a)请输入一个整数:input函数的使用a = input('请输入一个整数:')b = input('请输入另一个整数:')sum = print(a + b)在这里,会有一个错误,当我们给‘a'赋予10,给’b'赋予20,这时候因为系统任务这两个数据是字符串类型(str),则进行的是两者的一个拼加,即结果为“1020”,我们该怎么解决这个问题呢。就需.
2021-07-29 14:41:30
3642
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人