c++数组的基础知识

来源:互联网 发布:博途v12软件下载 编辑:程序博客网 时间:2024/05/21 00:46

数据是一个类似于标准库类型vector的数据结构,定义数组时必须指定数组的类型,同样数组的元素都是具体的对象,因此不存在引用的数组。

定义和初始化数组

int a[5];                //定义数组是基本形式int a[]={1,2,3};        //可以在定义时,直接初始化int a[5]={1,2,3}        //定义时初始化数组,如果指定了数组大小,那么提供初始化的元素的个数只可以比数组指定的个数少,本可以多,没有初始化的位置,会默认初始化,

对于字符数组,我们要记住一定要留一个位置存放结束符‘\0’,而且数组是不允许拷贝赋值的。

理解复杂的数组声明
直接给个代码看看

#include<iostream>using namespace std;int main(){    int num[5] = { 1,2,3,4,5 };    int(*num_pointer)[5] = &num;       /*num_pointer是一个指向一个含有10个整型的数组,    因为num存放的就是数组的首地址,其数据类型为:int *    所以我们知道*num_pointer输出的值就是num的值,    而&num在c++中定义为一个数组指针,它也是返回num的值,但是数据类型是:int (*) [5]    所以需要理解num_pointer的数据类型为:int (*) [5];    **/    cout << "num的值:" << num<<endl;    cout << "&num的值:"<<&num << endl;    cout << num_pointer << "   " << *num_pointer << endl;    cout << **num_pointer << "   " << *((*num_pointer) + 1) << endl;    int(&num_quote)[5] = num;        //num_quote引用一个含有10个整型的数组,其实它就是数组num的别名    cout << num_quote[0] << endl;    system("pause");    return 0;}

输出结果:
这里写图片描述

指针和数组
使用数组的时候,编译器一般会把它转换成为指针。在一些情况下对数组的操作,其实就是对指针的操作。

    int num[5] = { 1,2,3,4,5 };    auto num1 = num;             //num存放的是数组的第一个元素的地址,所以num1的类型是一个指针    cout << "num1的类型是:" << typeid(num1).name() << endl;

输出结果:
这里写图片描述

多维数组
本质上来说,c++语言中没有多维数组,通常所说的多维数组其实是数组的数组

0 0
原创粉丝点击