您的位置:首页 > 数码常识数码常识

c语言数组怎么初始化(c语言数组如何初始化为0)

2025-05-11人已围观

c语言数组怎么初始化(c语言数组如何初始化为0)
  1.一维数组的初始化

  c语言数组如何初始化为0

  1.1 未初始化的一维数组一维数组的成员在没有初始化时,数组成员的值都是未知的,一旦访问到未知的值,可能导致不可预料的情况,严重时可以导致软件运行异常。

  下面,将没有初始化的数组对应的值打印

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[5];

  6.

  7. int i=0;

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

  9. {

  10. printf(" %d ",numbers[i]);

  11. }

  12. printf("n");

  13.

  14. return 0;

  15. }

  输出结果下:

  1. 1088063360 21991 1088062960 21991 1255894432

  可以看出输出的结果是随机的,所以一般情况数组需要给每个元素一个确定的值.

  1.2 全部元素初始化

  一维数组的初始化就是在定义数组时给每个元素依次赋值,一般语法如下:

  1. 数组元素类型 数组名[数组元素个数]={元素值列表}

  例如给一个有5个整型元素进行初始化:

  1. int numbers[5]={1,2,3,4,5};

  在上述初始化中,数组元素的值依次为:

  1. numbers[0]=1;

  2. numbers[1]=2;

  3. numbers[2]=3;

  4. numbers[3]=4;

  5. numbers[4]=5;

  如果数组的全部元素初始化后,则可以省略数组元素个数:

  1. int numbers[]={1,2,3,4,5};//

  省略元素个数在省略元素个数的情况下,如果需要计算数组元素个数可以使用下面的公式

  1. 数组元素的个数=数组总的内存大小 / 数组每个元素的大小

  例如在计算 numbers 数组时,可以这样计算: 1. sizeof(numbers) / sizeof(int)

  实际在使用时如下:

  1. include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[5]={1,2,3,4,5};

  6.

  7. int i;

  8. for (i=0;i < sizeof(numbers)/sizeof(int);i++)

  9. {

  10. printf(" %d ",numbers[i]);

  11. }

  12. putchar('n');

  13. return 0;

  14. }

  输出结果为:

  1. 1 2 3 4 5

  1.3 部分元素初始化

  在一维数组中也可以为部分元素进行初始化,使用的方式如下:

  1. int numbers[5]={1,2,3};//对部分元素进行初始化

  如果只初始化部分元素,则剩下的没有初始化的元素的值为0

  具体使用如下:

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[5]={1,2,3};

  6.

  7. int i;

  8. for (i=0;i < sizeof(numbers)/sizeof(int);i++)

  9. {

  10. printf(" %d ",numbers[i]);

  11. }

  12. putchar('n');

  13. return 0;

  14. }

  输出结果如下:

  1. 1 2 3 0 0

  1.4 指定元素初始化

  一维数组在初始化时也可以指定为某一个或者几个元素进行初始化,例如可以为第2个元素和第4个元素进行初始化

  具体的语法如下

  1. int numbers[5]={[2]=100,[4]=200};//指定元素初始化,numbers[2]=100, numbers[4]=200

  具体使用如下:

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[5]={[2]=100,[4]=200,};//指定第2个元素,第4个元素进行初 始化(从0开始计)

  6.

  7. int i;

  8.

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

  10. {

  11. printf(" %d ",numbers[i]);

  12. }

  13.

  14. putchar('n');

  15.

  16. return 0;

  17. }

  18. ~

  输出结果如下:

  1. 0 0 100 0 200

  一维数组的初始化必须在定义指定元素列表,否则需要每个元素依次赋值

  1. int numbers[5];

  2. numbers={1,2,3,4,5};//error :不允许,只能一个一个元素依次赋值

  3.

  4.

  5. int i=0;

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

  7. numbers[i]=i;

  2.二维数组的初始化

  2.1 二维数组全元素初始化

  二维数组的初始化与一维数组类似,具体的语法如下:

  1. int numbers[2][3]={{1,2,3},{3,4,5}};//初始化二维数组,由两个一维数组构成 .

  具体使用如下 :

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[2][3]={{1,2,3},{4,5,6}};

  6.

  7. int i,j;

  8. for (i=0;i < 2;i++)

  9. {

  10. for (j=0;j < 3;j++)

  11. {

  12. printf(" %d ",numbers[i][j]);

  13. }

  14. putchar('n');

  15. }

  16. return 0;

  17. }

  具体输出结果如下:

  1. 1 2 3

  2. 4 5 6

  在全部元素初始化后,可以省略行下标,但是不能省略列下标.

  1. int numbers[][3]={{1,2,3},{4,5,6}};

  2.2 线性初始化

  由于二维数组在内存存储时,仍然是按照线性的存储方式,具体的存储结构如下图:

  在初始化时,也可以按照一维数组的方式进行初始化

  1. int numbers[2][3]={1,2,3,4,5,6};//按照一维数组的方式进行存储

  具体使用方式如下:

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[2][3]={1,2,3,4,5,6};

  6.

  7. int i,j;

  8. for (i=0;i < 2;i++)

  9. {

  10. for (j=0;j < 3;j++)

  11. {

  12. printf(" %d ",numbers[i][j]);

  13. }

  14. putchar('n');

  15. }

  16. return 0;

  17. }

  输出结果如下:

  1. 1 2 3

  2. 4 5 6

  2.3 部分元素初始化

  与一维数组一样,也可以对部分元素进行初始化,具体方式如下:

  1. int numbers[2][3]={{1,2},{4,5}};

  具体的代码如下:

  1. #include <stdio.h>

  2.

  3. int main(int argc,char *argv[])

  4. {

  5. int numbers[2][3]={{1,2},{4,5}};

  6.

  7. int i,j;

  8. for (i=0;i < 2;i++)

  9. {

  10. for (j=0;j < 3;j++)

  11. {

  12. printf(" %d ",numbers[i][j]);

  13. }

  14. putchar('n');

  15. }

  16. return 0;

  17. }

  输出结果为:

  1. markyang@ubuntu:~/Templates$ http://sjzlt.cn/shuma/a.out

  2. 1 2 0

  3. 4 5 0

  对于没有初始化的元素,对应的会设置为0.

  上面就是小居数码小编今天给大家介绍的关于(c语言数组如何初始化为0)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

  94%的朋友还想知道的:

  c语言里面void和main(main函数前为什么有void)

  怎么计算数组中元素的个数(PHP如何计算数组中元素的个数)

  PHP数组转字符串教程(php字符串转字节)

  php一维数组排序教程+(php多维数组排序函数)



  156121
 

很赞哦! ()

随机图文