关于c++数组初始化问题解释(一维数组和二维数组)

注:本文在初始化方法中暂未写到指针。

1.数组初始化方法(未包括指针)

在这里插入图片描述

2.解释

对于全局数组定义:未初始化的全局变量会默认为0

对于局部数组定义
1.int value1[10]; value[i]的值不定,没有初始化
2.int value2[10] = {1,2}; value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]则初始化为0
3.int value3[3][3]; // value[i][j]的值不定,没有初始化

3.局部数组定义示例

#include<iostream>
using namespace std;
int main()
{
	int i,j;
	//一维数组初始化
	int value1[10]; // value[i]的值不定,没有初始化
	int value2[10] = {1,2}; // value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]则初始化为0
	//二维数组初始化
	int value3[3][3]; // value[i][j]的值不定,没有初始化
	int value4[3][3] = {{1,1},{2}};//value[0][0,1]和value[1][0]的值初始化,其他初始化为0
	
	cout<<"value1="; //输出value1
	for ( i=0;i<10;i++)
	{
		cout<<value1[i]<<"\t";
	}
	cout<<endl;
	cout<<"value2="; //输出value2
	for ( i=0;i<10;i++)
	{
		cout<<value2[i]<<"\t";
	}
	cout<<endl;
	cout<<"value3="; //输出value3
	for ( i=0;i<3;i++)
	{
		for ( j=0;j<3;j++)
		{
			cout<<value3[i][j]<<"\t";
		}
		cout<<endl;
	}
	cout<<"value4="; //输出value4
	for ( i=0;i<3;i++)
	{
		for ( j=0;j<3;j++)
		{
			cout<<value4[i][j]<<"\t";
		}
		cout<<endl;
	}
	return 0;
}

执行结果:
在这里插入图片描述

注:另外,关于在main函数中,下面的数组定义在vs2019中均正常,但在vc6.0中方法二却会报错的情况解释:

c++ 11 标准中初始化变量和数组使用独立的运算符,就是花括号 { },以前标准中的花括号只是一个定界符,包裹数据列表的。所以 VC6 不会识别第二句这种形式,但 VS2019 支持新标准,第二句是没有问题的

int value1[10] = { 0 }; //方法一
 int value2[10] = { };  //方法二

参考文章:c++数组初始化方法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值