char type[1000][20] 为什么要使用二维数组?

一个商品类里面的一个商品类型为什么要用二维数组?而且用strcmp函数进行查找,只能用二维数组吗?用一维数组为什么会报错?
private:
    int number;             //商品数量 
    char name[1000][20];    //商品名称
    char type[1000][20];    //商品类型 
    int price[1000];        //商品价格 
    int num[1000];          //商品库存量
    char producer[1000][20];//商品生产产家 
    char brand[1000][20];   //商品品牌 

###为什么是这样的数据类型?可以单独解释吗?
##统计商品时,怎样根据上面的数据类型,实现价格倒序输出?(名称和价格要同步)

因为要求是字符串数组,说明type这个变量可以存储1000中商品的名称,名称长度最大为19个字符
用一维数组只能表示一个商品名称
你这个类相当于能够存储1000中商品信息,number最大值为1000
设计的并不好,应该设计一个商品信息类,然后定义1000个这种类对象