精华内容
下载资源
问答
  • 初始化int数组为0
    千次阅读
    2017-09-04 11:21:00

    1、int数组其实初始化的时候默认就是全部为0

    int a[1000];
    int a[1000] = {0};

    以上2种写法其实都可以


    注意:int a[1000] = {0};这种方法如果想把整形数组a都初始化为1就不能用了
    比如int a[1000] = {1};//数组其实是被初始化成1,0,0,0,0

    2、int数组重置为0

    如果是在定义以后想全部赋为0,用memset()函数是比较快的。

    int a[SIZE];
    memset(a, 0, sizeof(a));
    memset(a, 0, sizeof(int)*1000);//这里的1000是数组大小,需要多少替换下就可以了。

    注意:memset在头文件string.h里

    更多相关内容
  • 静态初始化数组的长度必须是在程序中确定的常数,不能是由用户输入的变量 例子: int a[10];//正确 Student stud[10];//正确:Student是一个学生类 int n;cin>>n;int a[n];//错误 int n;cin>>n;Student stud[n];/...
  • memset()是一个来自于string库的函数,正规用法是...但是4字节的int类型在被memset赋值后,会被重复四次:如使用memset赋值1到int数组后,1转为二进制的一个字节00000001,赋值完成后000000010000000100000001...

    memset()是一个来自于string库的函数,正规用法是初始化char类型的数组。因为char类型只占1个字节,memset按字节赋值后,会将char类型数组的所有元素变为你指定的值。但是4字节的int类型在被memset赋值后,会被重复四次:如使用memset赋值1到int数组后,1转为二进制的一个字节为00000001,赋值完成后为00000001000000010000000100000001,即十进制的16843009。因此不能直接对int数组memset赋值目标值。也因此,将数组赋值为0可以正常使用

    还有一个应用是,对一个int数组使用memset( , 0xff, sizeof());时,赋值完成后每个元素为11111111111111111111111111111111,即-1。

    除了赋值0或-1外,有时也需要将数组初始化为极大值。下面是几个常用的赋值。

    memset(arr, 0x7f, sizeof(arr)); //set int to 2139062143
    memset(arr, 0x80, sizeof(arr)); //set int to -2139062144
    memset(arr, 0x7f, sizeof(arr)); //set double to 1.38242e+306
    memset(arr, 0xfe, sizeof(arr)); //set double to -5.31401e+303

    注意,由于上面的赋值接近了数据类型的上限,在极大值相加(如最短路算法有时会出现)时会出现溢出

    这里推荐一个比较合适的常量:0x3f3f3f3f,转换为十进制仍达到1061109567,为109级别,正常情况下不会小于正常常数值。而0x3f3f3f3f * 2 = 2122219134‬,仍没有超过int类型的上限232。而且,由于0x3f3f3f3f的每个字节均相同,在memset时直接使用

    memset(arr, 0x3f, sizeof(arr));

    即可完成最短路算法中常用的极大值初始化。

    转载于:https://www.cnblogs.com/miserweyte/p/11461574.html

    展开全文
  • 关于初始化int数组

    千次阅读 2018-05-23 22:24:51
    关于C++初始化int数组 在做题目时,我发现经常使用的memset()在把int数组初始化为1时失去了作用: memset()只能将数组初始化为-1或0 memset()函数初始化出现问题的原因 memset()本来是用来初始化char型数组...

    关于C++初始化int数组

    在做题目时,我发现经常使用的memset()在把int数组初始化为1时失去了作用:

    • memset()只能将数组初始化为-1或0

    memset()函数初始化出现问题的原因

    memset()本来是用来初始化char型数组的,所以我们可以想到memset()函数是一个个字节对数组进行初始化的。然而,int型的数据占4个字节。memset()之所以可以把int型数组初始化-1或0,就是因为他们是特殊情况,他们的二进制补码分别表示为全为1和全为0,这才导致可以初始化int数组的原因,可如果我想初始化为1怎么办呢。

    用C++函数初始化数组

    用fill()函数初始化数组

    fill()函数的头文件是#include <algotithm>,下面是代码块:
    
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int main() {
        int arr[1000];
        fill(arr, arr+1000, 1);
        return 0;
    }
    

    用fill_n()函数初始化数组

    fill_n()函数的头文件同样是#include<algorithm>,下面是代码块:
    
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int main() {
        int arr[1000];
        fill_n(arr, 1000, 1);
        return 0;
    }

    小方法:只是如果每次不想记住自己的数组开了多大的话,用int s = sizeof(arr)/sizeof(int); 就好。只不过这样要记住类型。

    这个方法可以扩展到其它类型的数组。

    初始化二维数组

    用arr[SIZE][SIZE]作为例子。
    fill(arr[0], arr[0]+SIZE*SIZE, INF);
    INF为你要填入的数字。

    展开全文
  • java – int数组初始化

    千次阅读 2021-02-12 14:00:55
    首先要理解的是,局部变量存储...现在,发生的是,当您将数组引用声明局部变量时,并使用数组初始化int[] in = new int[5];数组引用(in)存储在堆栈中,为数组分配一个内存,能够在堆上保存5个整数元素(记住,对...

    首先要理解的是,局部变量存储在堆栈中,这些变量没有使用它们的默认值显式初始化。实例变量存储在堆中,默认情况下使用默认值进行初始化。

    而且,在堆上也创建对象,无论实例引用变量是否保存其引用,还是本地引用变量。

    现在,发生的是,当您将数组引用声明为局部变量时,并使用数组初始化:

    int[] in = new int[5];

    数组引用(in)存储在堆栈中,为数组分配一个内存,能够在堆上保存5个整数元素(记住,对象是在堆上创建的)。然后,在堆上分配用于存储整数值的5个连续的存储单元(size = 5)。并且数组对象上的每个索引依次保存对这些内存位置的引用。然后数组引用指向该数组。因此,由于5个整数值的内存在Heap上分配,所以它们被初始化为其默认值。

    而且,当您声明数组引用时,也不要用任何数组对象初始化它:

    int[] in;

    数组引用是在Stack上创建的(因为它是一个局部变量),但是默认情况下它不会被初始化为数组,并且与实例变量一样也不会变为null。

    所以,当您使用数组声明和初始化的第一种方法时,这是分配的方式:

    "Your array reference"

    "on stack"

    | | "Array object on Heap"

    +----+

    | in |----------> ([0, 0, 0, 0, 0])

    +----+

    "Stack" "Heap"

    展开全文
  • 本文实例讲述了C#中数组初始化数组元素复制的方法。分享给大家供大家参考。具体如下: 下面的代码演示如何创建和初始化数组,以及C#中如何将数组元素从一个复制到另外一个的方法。 using System; public class ...
  • JAVA---int数组声明与初始化

    千次阅读 2022-03-26 15:11:29
    JAVA---int数组声明与初始化 JAVA中int数组声明与初始化: 有3种正确方式同时进行声明与初始化;分别new int[num],{}以及new int[]{...}。注意,当使用new int[num]时只能按照默认值赋予各个元素,不可自定义。 ...
  • C/C++ int数组初始化

    万次阅读 多人点赞 2019-01-19 14:21:02
    //定义了数组array,但并未对数组初始化; 静态数组 int array[100] = {0}; //定义了数组array,并将数组元素全部初始化为0; 静态数组 int array[100] = {1}; //定义了数组array,并将数组第一个元素初始化为1,...
  • [Unity][C#][数组]int数组初始化

    千次阅读 2020-03-05 16:29:34
    int[] int_1 = {1,2,3,4,5 }; creature_1.Stats = new int[3] { 101,102,103 }; 参考资料: 1. 各种C#数组的定义和初始化 各种C#数组的定义和初始化 2. 3. ...
  • 展开全部参考62616964757a686964616fe59b9ee7ad9431333363373064代码importjava.util.Arrays;...publicclassArryDemo{publicstaticvoidmain(String[]args){//一:初始化数组int[]ary=newint[5];...
  • 标题相似的问题是关于Python列表或NumPy。这是关于数组.array类是标准Python库的一部分,请参见...这是大约27倍于数组.array('L',[0]*size),它临时需要比最终数组多两倍的内存大约比数组('L',[...
  • int类型数组初始化

    千次阅读 2020-12-06 15:57:49
    直接赋值:eg:int a[]={0}其他数字不会达到全部赋值 效果 函数初始化: 用memset来初始化,但是对于该类型,只有0,-1可以进行全体初始化,要加上头文件cstring eg:memset(a,0,sizeof(a))
  • Java自学-数组 初始化数组

    千次阅读 2021-03-06 03:39:22
    Java 如何初始化数组步骤 1 : 分配空间与赋值分步进行public class HelloWorld {public static void main(String[] args) {int[] a = new int[5]; //分配了长度是5的数组,但是没有赋值//没有赋值,那么就会使用...
  • 看到C++将数组初始化为0的这个用法: int a[100] = {0};// 初始化一个全0的数组 ...究其原因,正如C/C++ int数组初始化中所述,数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值...
  • 初始化 数组 javaToday we will learn how to initialize an array in java. An array in java is a container that can hold a fixed number of values of the same type. The values can be of the primitive type...
  • 今天小编就大家分享一篇C语言不定长数组初始化方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 使用memset初始化数组

    千次阅读 2020-04-05 17:00:00
    int型、float型…)数组时,假如初始化值非0,可能导致错误的结果。 先举个通常用法的栗子, 将int数组arr的元素初始化为0int arr[5]; memset(arr, 0, sizeof(int) * 5); 假如初始值不为0,会如何呢?例如...
  • python怎么初始化数组

    千次阅读 2020-12-01 00:33:56
    因为画图中x轴与y轴的数据通常为数组格式的数据,所以先总结一下如何初始化数组:(1)list得到数组# 通过array函数传递list对象L = [1, 2, 3, 4, 5, 6]a = np.array(L)# 若传递的是多层嵌套的list,将创建多维数组b =...
  • java-初始化数组

    千次阅读 2022-01-30 15:25:56
    所谓初始化,就是为数组的数组元素分配内存空间,并每个数组元素赋初始值。 能不能只分配内存空间,不赋初始值呢? 不行,一旦为数组的每个数组元素分配了内存空间,每个内存空间里存储的内容就是该数组元素的值,...
  • 展开全部在C语言中,数组初始化有以下62616964757a686964616fe58685e5aeb931333366303066几种方式:1、定义的时候同时初始化:int array[10] = {1,2,3,4,5};2、定义的时候不指定数组大小,由初始化数组元素来确定...
  • 【编程语言】C++中未初始化数组的默认值问题

    千次阅读 多人点赞 2019-11-01 10:44:49
    之前写代码,一般都是用 Vector 来的,很少使用数组。 刷题时冷不丁遇到这种 “数组初始化时的默认值” 问题,一时间还真... 局部数组初始化一部分时,未初始化的部分默认值 0; 下面来编码验证一下: #inc...
  • C++:用memset初始化数组

    万次阅读 多人点赞 2019-04-25 15:28:42
    1、初始化数组 定义完数组之后有三种初始化方式 int A[20]={0}; int A[20]; for(i=0;i<sizeof(A)/A[0];i++) A[i]=0; int A[20]; memset(A, 0, sizeof(A)); 此外对于全局变量和静态变量在定义之后会由编译器自动...
  • C++数组初始化方法

    千次阅读 2020-12-31 08:50:11
    //array of 10 uninitialized ints此new表达式分配了一个含有 10 个int型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针pia。在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接...
  • C#初始化数组的三种方式

    万次阅读 2018-07-17 12:32:51
    C#初始化数组的三种方式 实现方式:C#初始化数组的三种方式
  • java将int数组转化Integer数组

    千次阅读 2021-10-09 10:55:31
    //初始化int数组 int[] nums = {1,2,3,4,5,6}; //将int数组转换数值流 IntStream stream = Arrays.stream(nums); //流中的元素全部装箱,转换Integer流 Stream<Integer> integerStream = stream.boxed();...
  • #include<stdio.h>... int i=0; for(;i<10;i++) { printf("第%d个元素的值是%d\n",i+1,arr[i]); } } 运行结果: #include<stdio.h> int main(int argc,char*argv[]) { int
  • C语言int数组初始

    千次阅读 2020-11-13 21:51:26
    全局变量的int类型的数组初始值默认为0 局部int类型的数组初始值是随机的垃圾数值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 957,548
精华内容 383,019
关键字:

初始化int数组为0