C 数组
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
2024年10月11日
C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
2024年10月11日
在 C++ 中,数据类型的声明、初始化和赋值可以通过多种方式实现。复合数据类型包括数组、字符串、容器(如 std::vector、std::list、std::map 等),以及用户自定义类型(如 struct 和 class)。以下是这些数据类型的声明、初始化和赋值的形式介绍。
2024年10月11日
3Sum
问题简介:
给定n个整数的数组nums,是否有元素a,b,c在nums中,使a + b + c = 0?
找到数组中所有唯一的三元组,它们的总和为零
注:解决方案集不得包含重复的三元组
例如{1,-1,0}和{1,0,-1}
举例:
给定数组 {-2,1,0,-1,-1,2,3}
输出{
{1,0,-1},
{-1,-1,2},
{-2,0,2},
2024年10月11日
C++ 20 对于类成员变量的初始化,增加了指定类成员变量的初始化方式,这种方式其实在 gcc 中作为扩展很早就提供了,而且 C99 标准中也已经加入类似的语法对结构体(struct)进行初始化。
#include <iostream>
struct SA
{
int m_a;
int m_b;
};
struct SC
{
int m_c = 4;
struct SA m_d;
};
int main( int argc, char * argv[] )
{
struct SA a1 { .m_a = 1, .m_b { 2 } }; // <1> 支持等号或者大括号的初始化方式
struct SA a2 = { .m_b = 3 }; // <2> 可以跳过一些成员变量
struct SC c1 = { .m_d { .m_b = 4 } }; // <3> 可以嵌套,m_c未指定时使用默认值
std::cout << a1.m_a << " " << a1.m_b << std::endl;
return 0;
}
2024年10月11日
老张:小豆丁啊,你干啥呢?
小豆丁:我在学习啊......
老张:真的吗?
小豆丁:好吧,我承认,溜号了......
老张:就你那点小动作,还能逃出我的法眼!
小豆丁:额...你说的对...
老张:过来,问你一个问题,看看你掌握的怎么样?
小豆丁:说吧!
老张:给我解释下这行代码啥意思?
int arr[4] = {0};
小豆丁:这个难不住我,这行代码表示声明了一个数组,数组名字叫arr,数组有四个元素,每个元素都是整数类型的,每个元素初始的时候都被赋值为0!
2024年10月11日
C语言中实现数组是有数据相同的一系列元素组成。数组可以实现添加、删除元素等操作。那具体的这类功能该如何实现?
在使用数组之前需要对数组进行初始化的操作。在使用数组时会涉及到几个变量:数组的首地址、数组的长度、数组的有效个数。通过数组元素的首地址和数组的长度,我们能够获得整个数组;通过数组的有效个数,能够判断数组是否为空。我们可以利用结构体来进行处理,操作如下:
2024年10月11日
演示声明一维数组的方式,以 int 数组为例:
// 创建长度为:3 的 int 数组(其他数据类型方式相同),并赋值,以下写法都是正确的
int[] intArr= new int[3];
int[] intArr= {1, 2, 3};
int[] intArr = new int[]{1, 2, 3};
2024年10月11日
谈及 C++ 的初始化,我们都知道要在变量定义的时候给它赋初值。确实,在每次定义的时候就初始化不仅可以避免脏数据产生,还能增加代码的可读性。但是,你知道这其中有多少陷阱吗?
陷阱1:默认初始化的坑
请看一下代码,你能知道哪些变量的值是确定的?