数组基础

/*
 数组
 普通变量只能存储一个值,定义一个数组变量可以存储多个值,但这些值类型都是一样的
 数组的定义形式:
 形式一:先定义后逐个赋值,局部变量定义的数组如果赋值是随机数
 形式二:在定义时赋值,如果赋值个数少于长度时,其它也有默认值,int 为0,double为0,bool为false
 形式三:在定义时可以不指定长度,由赋的初始值决定数组长度
 
 数组的中元素的存和取
    长度为n的数组,下标为0开始,最大下标为n-1
 
 数组的遍历
 
 
 */

#include <iostream>
using namespace std;

int main() {
    // 形式一:先定义后逐个赋值
    int a[3]; //定义长度为3的数组,这里的3指度数的长度,这里数组里的值为随机数
    
//    a = {1,2,3}; //错误,定义后只能逐个赋值
    
    // 通过数组下标,对各元素进行赋值,下标从0开始,n个元素的最大下标为n-1
    a[0] = 3;
    a[1] = 4;
    a[2] = 5;
//    a[3] = 7; //错误,注意下标不能越界,长度为3的数组最大下标为2
    
    // 通过数组下标访问对应下标的元素的值,a[0] 就是一个变量
    cout<<a[0]<<endl;
    cout<<a[1]<<endl;
    cout<<a[2]<<endl;
    cout<<endl;
    /*
     输出:
     3
     4
     5
     
     */
    
    
    // 形式二:定义时赋值
    int b[3] = {3,4,5};
//    int b[3] = {3,4,5,6}; //注意:赋值的数量不能多于定义的长度
    
    // 通过循环方式遍历数组各个元数值
    for(int i=0;i<3;i++){ //从下标0开始,<长度
        cout<<b[i]<<endl;
    }
    cout<<endl;
    /*
     输出:
     3
     4
     5
     */
    
    // 形式三:定义时赋值,如果长度不足数组长度时,其它有默认值,int 0,double 0,bool false;
    int c[3] = {3}; //只给第一个元素进行了赋值,其它元素为0,因为是int类型
    for(int i=0;i<3;i++){
        cout<<c[i]<<endl;
    }
    cout<<endl;
    /*
     输出:
     3
     0
     0
     */
    
    // 形式四:定义时,如果不写长度,可以通过赋值来确定数组长
    int d[] = {3,4,5,6}; //此时数组d的长度为4
    for(int i=0;i<4;i++){
        cout<<d[i]<<endl;
    }
    cout<<endl;
    /*
     输出:
     3
     4
     5
     6
     */
    
    /*
     同理,可以定义double类型数组,每个元素都是double类型
     bool类型数组,每个元素都是bool类型
     */
    
    double f[3] = {3.1,3.4,3.6};
    for(int i=0;i<3;i++){
        cout<<f[i]<<endl;
    }
    cout<<endl;
    /*
     输出:
     3.1
     3.4
     3.6
     */
    
    
    return 0;
}