
问题
在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><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/1618" title="吐槽大师"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175680269472051.png" alt="吐槽大师" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/1618" title="吐槽大师">吐槽大师</a>
<p>吐槽大师(Roast Master) - 终极 AI 吐槽生成器,适用于 Instagram,Facebook,Twitter,Threads 和 Linkedin</p>
</div>
<a href="/ai/1618" title="吐槽大师" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><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










