首页 > 后端开发 > C++ > 解释C语言中未初始化数组访问的概念

解释C语言中未初始化数组访问的概念

王林
发布: 2023-09-01 20:53:05
转载
1139 人浏览过

解释C语言中未初始化数组访问的概念

问题

在C语言中,如果使用未初始化的数组,程序会被执行吗?

解决方案

  • 如果我们使用任何未初始化的数组,编译器将不会生成任何编译和执行错误。

  • 如果数组未初始化,您可能会得到不可预测的结果。

  • 因此,我们最好始终使用默认值初始化数组元素。

示例程序

以下是访问未初始化数组的 C 程序 -

 现场演示

#include <stdio.h>
int main(void){
   int a[4];
   int b[4] = {1};
   int c[4] = {1,2,3,4};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,a[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,b[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, c[i]);
   return 0;
}
登录后复制

输出

当执行上述程序时,会产生以下结果 -

Array a:
arr[0]: 4195872
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: 1
arr[1]: 0
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4
登录后复制

注意

如果我们没有初始化数组,默认情况下,它会打印垃圾值并且永远不会显示错误。

考虑另一个 C 程序来访问未初始化的数组 -

示例

 现场演示

#include <stdio.h>
int main(void){
   int A[4];
   int B[4] ;
   int C[4] = {1,2};
   int i; //for loop counter
   //printing all alements of all arrays
   printf("</p><p>Array a:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i,A[i]);
   printf("</p><p>Array b:</p><p>");
   for( i=0; i<4; i++)
      printf("arr[%d]: %d</p><p>",i,B[i]);
   printf("</p><p>Array c:</p><p>");
   for( i=0; i<4; i++ )
      printf("arr[%d]: %d</p><p>",i, C[i]);
   return 0;
}
登录后复制

输出

当执行上述程序时,会产生以下结果 -

Array a:
arr[0]: 4195856
arr[1]: 0
arr[2]: 4195408
arr[3]: 0

Array b:
arr[0]: -915120393
arr[1]: 32767
arr[2]: 0
arr[3]: 0

Array c:
arr[0]: 1
arr[1]: 2
arr[2]: 0
arr[3]: 0
登录后复制

以上是解释C语言中未初始化数组访问的概念的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板