首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C++初阶高阶

    C语言初阶———指针(3

    9  8  7  6  5  4  3  2  1  0 8  9  7  6  5  4  3  2  1  0 8  7  9  6  5  4  3  2  1  0                                                 7 6 5 4  8  3  2  1  0  9 8  7  6  5  4  3  2  9  1  0                                                8  7  6  5  4  3  2  1  9  0                                                7 6 5 4 3 2 1  8  0  9 8  7  6  5  4  3  2  1  0  9                                                7 6 5 4 3 2 1  0 8  9  这是第一趟 }; int arr2[] = { 2,3,4,5,6 }; int arr3[] = { 3,4,5,6,7, }; int* arr[] = { arr1,arr2,arr3 }; /

    16410编辑于 2025-10-22
  • 来自专栏Linux学习~

    C++初阶-模板初阶

    C++模板初阶 零、前言 一、泛型编程 二、函数模板 1、函数模板定义及使用 2、函数模板原理 3、函数模板实例化 4、函数模板匹配原则 三、类模板 1、类模板定义及使用 2、类模板实例化 零、前言 本章主要讲解C++的模板相关的初阶知识 一、泛型编程 用函数重载来实现交换变量函数: void Swap(int& left, int& right) { int temp = left; left 编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用 比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理double类型的代码,对于字符类型也是如此 3

    59430编辑于 2022-11-30
  • 来自专栏计算机语言及操作系统的学习

    【C++初阶路】--- 模板初阶

    在模板引入之前,如果要实现两个数的交换,我们一般都会这样写(显得代码十分的冗余):

    24410编辑于 2024-07-14
  • 来自专栏我的计算机成长

    指针(初阶

    3. 野指针 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。 3.1 野指针成因 1. 小心指针越界 3. 指针指向空间释放即使置NULL 4. 避免返回局部变量的地址 5. #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 拿到的是arr2的地址,用j访问arr2的元素,当i是2的时候,拿到的是arr3的地址,用j访问arr3的元素. int main() { int arr1[] = { 1,2,3,4,5 }; int arr2[] = { 2,3,4,5,6 }; int arr3[] = { 3,4,5,6,7 }; //指针数组 int* arr[] = { arr1, arr2, arr3 };

    36310编辑于 2024-01-23
  • 来自专栏Base_CDNKevin

    模版初阶

    类模板名 { // 类内成员定义 }; 定义示例 // 类模板 template<class T> class Stack { public: Stack(size_t capacity = 3) 类模板名字不是真正的类,而实例化的结果才是真正的类 int main() { Stack<int> s1; // int Stack<double> s2; // double Stack<char> s3;

    98700编辑于 2024-05-24
  • 【数据结构-初阶】详解线性表(3)---双链表

    主页传送门:良木生香 个人专栏:《C语言》 《数据结构-初阶》 《程序设计》 人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 上期回顾:在上一篇文章中,我们了解了链表是由一个一个节点通过指针连接在一起而组成的 以上就是关于带头循环双向链表基本操作的详解了,下面是所有代码的综合,有兴趣的朋友们可以看看~~~~~~ 3、代码总和: 话不多说,直接上代码: #define _CRT_SECURE_NO_WARNINGS ***带头节点双向循环链表*** \n"); printf("插入:\n"); printf("1.头插 2.尾插 3. \n"); Sleep(2000); break; } case 3: { printf("请输入pos:\n"); int pos = 0; scanf("%d"

    16910编辑于 2026-01-09
  • 来自专栏Base_CDNKevin

    模版初阶

    // 类模板都是显示实例化 Stack<int> st1; // int st1.Push(1); st1.Push(2); st1.Push(3); Stack<double> st2;

    70110编辑于 2024-07-25
  • 【Java EE初阶 --- 多线程(初阶)】线程安全问题

    在我们看来count++是一个递增操作,但是在CPU眼里,它有三个指令: 1. load -> 把内存中count数据读到 CPU寄存器 2. add -> 在指定寄存器中进行+1操作 3. save 锁的基本特性) 请求和保持,一个线程拿到锁后,不释放锁1的情况下,去获得锁2 (嵌套) 循环等待,多个线程,多个锁之间构成”循环“ 避免死锁 结合死锁出现的原因,1和2都是锁的基本特性,无法改变,那么只有对33.请求和保持:一个线程拿到锁后,不释放锁1的情况下,再由一个线程去获得锁2(并列) 4.循环等待:对加锁的顺序做出约定 Java标准可中的线程安全类 虽然有加锁来保证线程安全,但是万事没有绝对 释放当前锁(这就意味着wait方法必须和synchronized配合使用,因为要解锁的前提是当前对象为加锁状态) 3. 如果有多个等待线程,那么随机挑选出有wait状态的线程 3.

    9810编辑于 2026-01-14
  • 模板初阶(详解)

    这样每个类型交换都需要写一个函数重载,其中代码的重复率很高,只有类型不同而逻辑都一样,写起来也非常的繁琐,那我们能不能写一个通用的函数告诉编译器一个模版让编译器根据不同的类型利用该模版来生成代码呢?这就是本章的主题——模板。

    14610编辑于 2025-11-15
  • 来自专栏学习成长指南

    C++初阶

    3.引用 引用就是取一个绰号 这里就是指的是i就是k,k就是i,所以打印的地址是一样的,进行加加操作他们会同时加加; 我们可以给i取2个绰号,也可以给k接着取绰号; 那么这个引用的意义何在呢:我们在调用函数进行交换的时候 变量的作用域就是在函数内部,出了作用域,就会销毁了; 下面的加上static就会存放到静态区里面,栈帧销毁了以后,这个值还是存在的; TIP:我们现在已经了解了 栈帧的销毁不影响生命周期,这个时候就可以使用传引用返回; (3

    11800编辑于 2025-02-24
  • 来自专栏《数据结构》

    【JavaEE初阶】CSS

    引用这个类的时候,通过class属性="类名"即可.一个类,可以被一个元素引用,也可以被多个元素引用.一个元素可以引用一个类,也可以引用多个类. .class属性值 { CSS属性; } 3. 为负值会向左缩进. line-height, 表示行高, 行高 = 上边距 + 下边距 + 字体大小 = 顶线间距离 = 底线间距离 = 中线间距离,如果行高与元素高度相同, 就表示垂直居中了. 3.

    75310编辑于 2023-10-16
  • 来自专栏C语言讲解

    指针初阶(2)

    因为数组又是连续存放的,所以通过指针就可以遍历访问数组 数组是可以通过指针来访问的 #include <stdio.h> int main() { int arr[10] = { 1, 2, 3, ] = "cuihua"; char* parr[] = { arr1, arr2, arr3 }; char** p = parr; return 0; } 7. = "cuihua"; //指针数组 char* parr[] = { arr1, arr2, arr3 }; int i = 0; for (i = 0; i < 3; i++) { 4, 5 }; int arr2[] = { 2, 3, 4, 5, 6 }; int arr3[] = { 3, 4, 5, 6, 7 }; //指针数组 int* parr[] = { arr1, arr2, arr3 }; int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 5; j++

    20810编辑于 2024-01-22
  • 来自专栏cs阿伟

    【C】初阶指针

    }; int* p = arr; int i = 0; for (i = 0; i < 10; i++) { *(p + i) = i + 1; } return 0; } ---- 3. //指针数组-存放指针的数组 int* arr3[5];//存放整型指针的数组 char* arr4[6];//存放字符指针的数组 int* arr3[5];//是什么? arr3是一个数组,有五个元素,每个元素是一个整形指针。 int arr2[] = { 2,3,4,5,7 }; int arr3[] = { 3,4,5,6,7 }; int arr4[] = { 4,5,6,7,8 }; int* arr[4] = i,是下标为i的元素,解引用之后是取arr1~arr4中某个数组,再加j后解引用是取到下标为j的元素, } printf("\n"); } return 0; } 结语: 这里我们关于初阶指针的内容就介绍完了

    40130编辑于 2023-10-10
  • 来自专栏C语言讲解

    指针初阶(1)

    3. *(arr+i) == arr[i] //arr[i] == *(arr+i) == *(i+arr) == i[arr] int main() { int arr[10] = { 1, 2, 3, 7, 8, 9, 10 }; int i = 0; for (i = 0; i < 10; i++) { printf("%d ", i[arr]);//[] 操作符 } //2+3 --> 3+2 //arr[i] --> i[arr] return 0; } 4.2 指针-指针 //地址-地址 //指针-指针 #include <stdio.h> int main()

    21810编辑于 2024-01-22
  • 来自专栏Java

    指针的初阶

    3.野指针 概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的) 错误用法: 3.1 指针未初始化 int main() { int* p; *p = 20; } 首先这种写法就是不可取的 小心指针越界 3. 指针指向空间释放即使置NULL 4. 避免返回局部变量的地址 5. 所以+1跳过的4*10个字节空间 而&arr[0]+1则跳过的4个字节的空间 数组和指针结合使用 #include <stdio.h> int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,0

    22410编辑于 2024-11-20
  • 来自专栏Code

    单链表初阶

    3.链表的性质 1、链式机构在逻辑上是连续的,在物理结构上不⼀定连续 2、结点⼀般是从堆上申请的 3、从堆上申请来的空间,是按照⼀定策略分配出来的,每次申请的空间可能连续,可能不连续 结合前⾯学到的结构体知识

    16600编辑于 2024-11-20
  • 来自专栏C++初阶高阶

    结构体初阶

    二.传址调用,&s传过去的只是一个地址编号,不需要开辟空间,效率高,还可以改变s 里面的数据。

    12310编辑于 2025-10-22
  • 【Java EE初阶---多线程(初阶)】初识计算机

    前言 经过了之前数据结构的学习,相信大多数人已经相比与开始的自己,已经有了十足的进步,结束数据结构的学习,为了揭开计算机背后神秘的面纱,同时为了更好迎接更多挑战,下面就让我们一起进入【Java EE初阶

    8510编辑于 2026-01-14
  • 来自专栏c语言

    模板初阶介绍

    Test() { Add(1, 2); // 与非函数模板类型完全匹配,不需要函数模板实例化 Add(1, 2.0); // 模板函数可以生成更加匹配的版本,编译器根据实参生成更加匹配的Add函数 } 3.

    25810编辑于 2024-08-17
  • 来自专栏ljw

    C++初阶

    一个变量可以有多个引用 3. 比如: 之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C++方式实现, 会发现struct中也可以定义函数。 return 0; } 3. 做个比方。 +n不能用for,while求1+2+3+... = new int[10]; Func(); // 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放.

    65910编辑于 2024-10-18
领券