ICode9

精准搜索请尝试: 精确搜索
  • 数组越界异常- 数组空指针异常2022-06-29 09:04:01

    数组越界异常  观察一下代码,运行后会出现什么结果. public static void main(String[] args) { int[] arr = {1,2,3}; System.out.println(arr[3]); } 创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引,程序运 行后,将会抛出 ArrayIndexOutOfB

  • C++中两个类相互引用2022-06-29 08:33:02

    (1)写两个头文件A.h和B.h分别用于声明类A和B;(2)写两个.cpp文件分别用于定义类A和B;(3)在A的头文件中导入B的头文件;(4)在B的头文件中不导入A的头文件,但是用extern 的方式声明类A,并且,在B中使用A的时候要用指针的形式。原理:在B中用指针调用A,那么在A需要知道B占空间大小的时候,就会去找到B的定义

  • 021 指针思考2022-06-29 02:32:15

      /* 目录: 一 C原理 二 汇编原理 */ 一 C原理 void change(int** p2) { printf("p2 = 0x%x, *p2 = 0x%x\n", p2, *p2); printf("*p2 = 0x%x, *8p2 = %d\n", *p2, **p2); } int main() { int i = 3; printf("&i = 0x%x, i = %d

  • C 语言指针2022-06-29 00:00:11

    基本概念 指针代表内存地址。 通常在类型关键字的后面加字符*来表示指针,表示指针指向什么类型的值。比如,char*表示一个指向字符的指针,float*表示一个指向float类型值的指针。 指针指向的可能还是指针,这时要用两个星号**表示。 int** foo; 指针变量初始化 声明指针变量之后,编译器

  • 双指针算法2022-06-28 09:03:04

    理解 双指针基本只涉及到两种指针,一种是快慢指针,一种是对撞指针; 快慢指针主要解决有关链表一类的问题,如链表里是否有环,环状链表的长度等;而对撞指针一般解决二分等问题; 快慢指针一般是设计一个快指针和一个慢指针,一开始都指向链表的开头;而对撞指针一般是设计一头一尾两个速度相等的

  • 代码随想录刷题记录-数组2022-06-27 16:31:10

    刷了三天数组相关的题目,感觉其中的考点主要在于循环条件和边界条件的确定,主要技巧是双指针,对几道题做个小总结。 加油!多刷多练,唯手熟耳。 二分查找 可以选择在闭区间和开区间操作,代码实现不同; 注意循环结束时左右指针落在何处; 移除元素 数组元素的移除实际上是元素的覆盖; 注意

  • java简单算法:删除有序数组中的重复项2022-06-27 15:05:33

    问题 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那

  • c++中智能指针的使用,个人总结2022-06-25 17:00:31

    一、什么是智能指针   一般来讲C++中对于指针指向的对象需要使用new主动分配堆空间,在使用结束后还需要主动调用delete释放这个堆空间。为了使得自动、异常安全的对象生存期管理可行,就出现了智能指针这个概念。简单来看智能指针是 RAII(Resource Acquisition Is Initialization,

  • 返回局部变量是一个指向常量的字符串指针2022-06-24 21:31:27

    返回局部变量地址 char* GetMemory(void) { char p[] = "hello world"; return p; } int main() { char* str = NULL; str = GetMemory(); printf(str); return 0; } GetMemory函数首先将"hello world"字符串(一般在.rdata区段存放)复制到栈上,然后返回对应的栈地址。当Get

  • 智能指针2022-06-24 13:32:03

    1.什么是智能指针 从比较简单的层面来看,智能指针是RAII(Resource Acquisition Is Initialization,资源获取即初始化)机制对普通指针进行的一层封装。这样使得智能指针的行为动作像一个指针,本质上却是一个对象,这样可以方便管理一个对象的生命周期。 在c++中,智能指针一共定义了4种:aut

  • 算法基础01排序2022-06-24 10:05:38

    排序 一、快排(分治) 1.确定分界点     q[l]  q[r]    q[(l+r)/2]       随机 2.调整区间:根据确定的点,假设为x,使得左边的区间<=x,右边的区间的数>=x        比较暴力的方法:   a[ ]   b[ ]   q[l~r]  q[i]<=x放到a[ ] ,q[i]>=x 放到b[ ]   再先把a[ ]放到q[ ],

  • 指针数组与数组指针的区别2022-06-24 00:34:44

    C语言中数组指针和指针数组可以理解变相记忆为指针的数据和数组的指针 int *p [4]; // 指针数组:由于[]的优先级高,所以首先创建出一个数组,该数组中的每一个元素都是一个指针 int (*p) [4];// 数组指针:()的优先级高说明定义的是一个指针,指针指向4个元素的数组,每一个元素都是int类型的

  • 我学c++的一些看法2022-06-23 11:05:04

    关于基态通过对于虚函数的使用,其实质就是对于其派生态所定义的函数的使用。对于 father * me = new child (基态指针->派生态指针) but no 即(派生类指针不能指向基态); 就是实则 me 始终是基态 ,它的访问范围只与它的定义有关,与它所指向的目标无关。(使代码的可替换性很高

  • 04_链表(下)2022-06-23 08:00:19

    04_链表(下) 使用链表的六大技巧 技巧一:理解指针或引用的含义 在Java语言中没有指针的概念,其体现是“引用”。 引用:将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向这个变量,通过指针就能找到这个变量。 技巧二:警惕指针丢

  • C++顶层const与底层const2022-06-22 22:01:13

    (1)顶层const即声明对象本身是一个常量,其内存中存放的值初始化后是不能更改的(且必须有初始化); 如:  const int i = 9;      //定义一个int型常量i,并初始化为9,此后i存储的值就不能更改了; int j; int* const p = &j;    // 定义一个int 型指针常量p存放变量j的地址,此后p存

  • 1.链表2022-06-22 21:35:12

    1.判断是否为回文链表   法一1.把数组右边放入栈中,弹出比较     2.使用快慢指针,快指针走完时慢指针指向数组中间位置。   法二1.使用快慢指针,直接改链表^-^进行判断,然后再改回去。 2.      3.只用了6个变量                         

  • 文件读写2022-06-22 21:34:57

    1、当前目录是 ./         2、上级目录是../ 3、判断一个文件或者文件夹是否存在  file_exists       4、fopen的权限 'r' 只读方式打开,将文件指针指向文件头。 'r+' 读写方式打开,将文件指针指向文件头。 'w' 写入方式打开,将文件指针指向文件头并

  • 03_链表(上)2022-06-22 08:03:12

    03_链表(上) 写在最前 缓存淘汰策略 FIFO(First In, First Out):先进先出策略。 LFU(Least Frequentlly Used):最少使用策略。 LRU(Least Recently Used):最近最少使用策略。 链表与数组 链表与数组不一样,不需要一块连续的内存空间,他通过“指针”将一组零散的内存块串联起来使用。 同

  • Java String 手工引用指针2022-06-22 05:31:08

    手工修改引用的意思就是通过程序来手工修改 String 字符串使用的指针来获得我们需要的值。 手工修改指针的方法为 intern()。 手工修改 String 在 String 存储池中的引用,JVM 将会在我们需要的时候返回这个引用。   让我们来创建一个测试用例: String constantString = "interned

  • 链表算法题解题技巧归纳总结2022-06-21 21:31:11

    最近集中刷了一批链表的题型,在这里总结一下解题技巧,以及对应题目的解题思路。 解题思路并不会细致入微,主要是为了总结归类,并且希望用几句话来激发灵感,权当是没思路时的指引以及以后复习时的提纲了。 还有一些重要或者总会绕晕的经典题目,也在这里记录一下代码的实现逻辑。 一、解决

  • map.put空指针异常(已解决)2022-06-21 19:05:06

    在Java编程中,经常就会遇到java.lang.NullPointerException的异常,看以下代码: 问题出在map虽然初始化了,但是成员变量默认初始化为null,并没有分配内存,此时对map进行put操作,势必会报空指针异常。解决办法是对map进行初始化,修改为以下代码即可。  

  • 快慢指针-删除有序数组中的重复项2022-06-21 09:04:33

    题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持一致。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那

  • 双指针-有序数组的平方2022-06-21 09:02:49

    题目描述 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例1 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100] 示例2 输入:nums = [-7,-3,2,3,11] 输

  • 《C和指针》第6章--指针的一些总结2022-06-21 08:01:34

    本博客为对《C和指针》第6章--指针的一些总结   6.1内存和地址 通过把内存比作街道,房子容纳数据,,并有一个房号来标识。 内存的基本单元是字节,每个字节8个位,每个字节通过地址标识。 但为了存储更大的数据,开始使用字,双字...而字的大小取决于不同系统, 在16位的系统中(比如8086微机) 1

  • JAVA基础前言2022-06-20 18:33:55

    JAVA基础前言 JavaSE JavaME JavaEE版本区别 JavaSE标准版,用于控制台程序、桌面程序 JavaME移动版,用于手机、嵌入式 JavaEE企业版,用于Web端、服务器 JDK JRE JVM 区别 JDK——Java Development Kit——是Java开发者工具,开发者使用。 JRE——Java Runtime Environment——是Java

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有