精华内容
下载资源
问答
  • c语言数组初始化
    千次阅读
    2022-03-02 15:54:57

    https://bbs.csdn.net/topics/310142759

    一般来说 全局变量、静态变量处于数据区,默认初始化为0 (如果指定初始值,则为指定的值)
    而局部变量处于堆栈区,其数值是随机的,即当时内存中的值。
    动态变量在堆上

    总体来说
    不要利用编译器的这种默认原则
    而是应当显示的指定
    必要的初始化不是笨拙
    而是规范

    更多相关内容
  • C语言数组初始化

    千次阅读 2021-05-20 12:57:15
    C语言数组初始化教程C语言数组初始化一语法type arrName[count] = {val1, val2, val3, ....};参数参数描述type数组中每一个元素的数据类型。arrName数组的变量名。count数组能存储的元素的个数。val给数组初始化的值...

    C语言数组初始化教程

    C语言数组初始化一

    语法

    type arrName[count] = {val1, val2, val3, ....};

    参数

    参数

    描述

    type

    数组中每一个元素的数据类型。

    arrName

    数组的变量名。

    count

    数组能存储的元素的个数。

    val

    给数组初始化的值。

    说明

    我们还可以在 {} 写上一系列的值,用来初始化数组的值。

    C语言数组初始化二

    语法

    #include

    type arrName[count];

    memset(arrName, 0, count);

    说明

    我们可以使用 memset 函数,给数组进行初始化,这里,我们将数组全部初始化为了 0。

    memset 函数的第一个参数是数组名,第二个参数是需要初始化的值,最后一个是数组的长度。

    案例

    数组初始化

    数组未能完全初始化

    #include

    int main(int argc, char **argv){

    printf("嗨客网(www.haicoder.net)\n\n");

    // 给数组全部初始化为 0

    int arr[5] = {2};

    int i = 0;

    for(i = 0; i < 5; i++)

    {

    printf("i = %d\n", arr[i]);

    }

    }

    程序运行后,控制台输出如下:

    9cd5f55a4f39f105a86b808add2937d4.png

    我们创建了一个有五个元素,每个元素都是

    最后,我们使用

    数组初始化

    创建数组时,即给数组设置初值

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n\n");

    // 初始化数组

    int arr[5] = {2, 4, 6, 8, 10};

    int i = 0;

    for(i = 0; i < 5; i++)

    {

    printf("i = %d\n", arr[i]);

    }

    printf("\n");

    return 0;

    }

    程序运行后,控制台输出如下:

    03ea7149c36d300bffb07482971cc12d.png

    我们创建了一个有五个元素,每个元素都是 int

    数组初始化

    使用 memset 初始化数组

    #include

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n\n");

    // 不初始化数组

    char arr[5];

    memset(arr, 'a', 5);

    int i = 0;

    for(i = 0; i < 5; i++)

    {

    printf("i = %c\n", arr[i]);

    }

    printf("\n");

    return 0;

    }

    程序运行后,控制台输出如下:

    858c8cccd2dfb55b959168b303df6ee3.png

    我们定义了一个 a,最后,我们打印数组的内容,输出了所有元素都是 a。

    即,我们成功使用了 memset 函数,将数组的内容初始化为了 a。

    数组不初始化

    创建数组时,如果不给数组初始化,那么数组元素是未知的

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n\n");

    // 不初始化数组

    int arr[5];

    int i = 0;

    for(i = 0; i < 5; i++)

    {

    printf("i = %d\n", arr[i]);

    }

    printf("\n");

    return 0;

    }

    程序运行后,控制台输出如下:

    9cd5f55a4f39f105a86b808add2937d4.png

    这次,我们创建了数组之后,没有给数组进行初始化,我们打印数组的内容,发现数组的内容是随机的。

    C语言数组初始化总结

    C 语言的数组的初始化,即数组定义的时候给数组赋初值,一共可分为两种方法,如果我们定义了数组,但没有给数组进行初始化,那么数组的内容是随机的。

    展开全文
  • #include<stdio.h> void Init(int arr[],int sz) { int i =0; for(i=0;i<sz;i++) { arr[i]=0; } } void Print(int arr[],int sz) { int i=0; for(i=1;i<sz;i++) { printf("%d ",arr[i]);... i...

    #include<stdio.h>
    void Init(int arr[],int sz)
    {
        int i =0;
        for(i=0;i<sz;i++)
        {
            arr[i]=0;
        }
    }
    void Print(int arr[],int sz)
    {
        int i=0;
        for(i=1;i<sz;i++)
        {
            printf("%d ",arr[i]);
        }
    }
    int main()
    {
        int arr[10]={0};
        int sz = sizeof(arr)/sizeof(arr[0]);
        Init(arr,sz);
        Print(arr,sz);
        return 0;
    }
     

    展开全文
  • 1、{0} 初始化int arr1[3] = {0};使用 {0} 的方式最简洁,一般在定义的时候使用。2、for 循环初始化int arr2[3];for (int i = 0; i < 3; i++) {arr2[i] = i;}使用 for 循环的好处是:可以将每个元素设为不同的值...

    1、{0} 初始化

    int arr1[3] = {0};

    使用 {0} 的方式最简洁,一般在定义的时候使用。

    2、for 循环初始化

    int arr2[3];

    for (int i = 0; i < 3; i++) {

    arr2[i] = i;

    }

    使用 for 循环的好处是:可以将每个元素设为不同的值。

    3、memset 函数

    memset 函数声明为:void *memset(void *str, int c, size_t n)

    将 str 中当前位置后面的 n 个字节 (typedef unsigned int size_t )用 c 替换并返回 str 。

    int arr3[3];

    memset(arr3, 0, sizeof(int) * 3);

    memset 一般使用“0”初始化内存单元,通常是给数组或结构体进行初始化,或清空数组或结构体。

    一般如 char、int、float、double 等类型的变量直接初始化即可,如果用 memset 的话反而显得麻烦。

    三种方式的示例代码如下:

    需要注意的是:memset函数按字节对内存块进行初始化,所以不能用它将 int 数组初始化为 0 和 -1 之外的其他值。

    memset 赋值为 -1 或 0,最后的结果是正确的:

    但使用memset赋值为-1和0以外的值,最终的结果并不是期望值。比如赋值为1,则如下图所示:

    因为 memset 是对每个字节进行赋值的,已知一个 int 为4字节,那么 memset 赋值时为二进制则为:

    00000001 00000001 00000001 00000001 = 16843009

    展开全文
  • C语言数组初始化及malloc初始化

    千次阅读 2021-05-06 20:39:20
    数组赋值初始化的三个方式 1、{0} 初始化 例如: int nums[3] = {0}; 但是经常出现的是给定长度(变量)然后需要进行初始化,如果写成下式: int main(){ int numsSize=0; scanf("%d",&numsSize); int ...
  • C语言数组初始化的三种方法

    万次阅读 多人点赞 2019-09-27 10:34:48
    C语言中,数组初始化的方式主要有三种: 1、声明时,使用 {0} 初始化; 2、使用memset; 3、用for循环赋值。 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: #define ARRAY_SIZE_MAX (1*1024...
  • int a[4]={1,2,3,};合法吗?
  • 原文:...C语言中,数组初始化的方式主要有三种: 1、声明时,使用 {0} 初始化; 2、使用memset; 3、用for循环赋值。 建议使用memset移植性好,声明时,使用 {0} 初始化可能存在兼容性问题。 ...
  • C语言中,数组初始化的方式主要有三种: 1、声明时,使用 {0} 初始化; 2、使用memset; 3、用for循环赋值。 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: #define ARRAY_SIZE_MAX (1*1024*1024) ...
  • 代码如下: int m=25; int s[m] ; 同样的代码在Dev c++可以运行,可是到了vs就报错,报错内容是赢输入常量表达式。 请问这个怎么解决?
  • c语言数组初始化问题

    2021-10-22 07:27:54
    c语言数组为什么要去初始化,系统不是会自动初始化为0吗?
  • C语言数组初始化及逆向输出
  • C语言数组初始化问题

    千次阅读 2015-03-31 12:22:37
    最近在复习C语言,然后做题时突然想到了数组初始化问题,然后查阅资料了解到结论:全局和静态数组都按语言规范要求被初始化为0 对于局部数组初始化元素个数少于数组元素个数时,数组前面的元素值对应初始化值,...
  • C语言数组初始化

    2021-05-25 01:36:26
    PDF的居然不然复制,就把它这章翻译了,例如以下 5.2.1 数组初始化 数组能够用一个列值来初始化,比如 int v1[] ={1,2,3,4}; char v2[]={'a','b','c',0}; 当数组定义时没有指定大小,当初始化採用列表初始化了...
  • c语言 数组初始化

    2021-06-13 13:04:03
    C语言中,数组初始化的方式主要有三种: 1、声明时,使用 {0} 初始化; 2、使用memset; 3、用for循环赋值。 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: [cpp] view plain copy #define ARRAY_...
  • 初学数组,以华科的《c 语言与程序设计》为教材,参考了《一站式学习c编程》,后者数组一章有串代码如下int main(void){int i, histogram[10] = {0};gen_random(10);for (i = 0; i < N; i++)histogram[a[i]]++;.....
  • C语言数组空间的初始化详解

    千次阅读 2021-05-28 02:45:41
    数组空间的初始化就是为每一个标签地址赋值。按照标签逐一处理。如果我们需要为每一个内存赋值,假如有一个int a[100];我们就需要用下标为100个int类型的空间赋值。这样的工作量是非常大的,我们就想到了让编译器做...
  • c语言数组初始化

    千次阅读 2020-12-23 01:05:12
    c语言数组初始化c语言中,我们经常会有两种初始化的方式(一维数组):方式一int arr[20];这种方式是在c语言编译阶段对数组分配了固定的内存空间,但没有为c语言赋值,此时,对该数组进行打印输出的话,则会输出...
  • 数组可以说是目前为止讲到的第一个真正意义上存储数据的结构。虽然前面学习的变量也能存储数据,但变量所能存储的数据很有限。不仅如此,数组和指针(后续会讲)是相辅相成的,学习数组可以为学习指针打下基础。那么...
  • 利用该特性可以初始化指定的数组元素。例如,只初始化数组中的最后一个元素。对于传统的的C初始化语法,必须初始化最有一个元素之前的所有与还俗,才能初始化它: int arr[6]={0,0,0,0,0,212];//传统的语法 而使用...
  • c语言结构体数组初始化

    千次阅读 2021-05-22 13:03:19
    有关结构体数组初始化的问题struct _m_usmart_nametab usmart_nametab[]={#if USMART_USE_WRFUNS==1 //如果使能了读写操作(void*)read_addr,"u32 read_addr(u32 addr)",(void*)write_addr,"void write_addr(u32 addr...
  • C语言数组初始化为一个数字的技巧

    万次阅读 多人点赞 2020-01-10 15:25:30
    C语言中,当我们使用数组的时候,我们或许会希望数组一开始全部被赋予某个特殊的值,我们该怎么做呢? 1.全部赋值为0 int main() { int c[5]={0};//这种办法很简便,但好像只对赋值为 0 才有效,其它的数字都只...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,555
精华内容 70,622
关键字:

c语言数组初始化