C++数组知识点整理(刷题解析整理)

写一下刷题时关于C++数组方面的知识点,一些关于数组题的解析整理


前言

在学习C/C++或者其他编程语言时,数组和指针还是很重要的,下面把之前记笔记记下来的数组知识整理一下,方便大家直观简单的理解数组知识

带入实例吧

一、数组是整哪样的?

【假装这里有个表情包】

像其他编程语言一样,C++中的数组是一组具有连续内存位置的类似类型的元素。 在C++中 std ::array 是一个封装固定大小数组的容器。 在C++中,数组索引从0开始!

(相关概念大家自己去百度吧,,,,,,,,,其他博主的概念写的挺不错的)

但是  [ but ]  这篇文章是整理错题知识点的!!!!知道概念意义不大,毕竟都是中文,谁都看得懂,能带入实例,实题中才是好的。

【开始】…连接成功……正在加载内容中……连接大佬题后解析成功

二、一维数组

  • 静态 int array[999];                         定义了数组array,并未对数组进行初始化
  • 静态 int array[999] = {2,13};         定义并初始化了数组array
  • 动态 int* array = new int[999];  
    •  delete []array;                     分配了长度为999的数组array 
  • 动态 int* array = new int[999](80,23);  
    •  delete []array;                        为长度为999的数组array初始化前两个元素

三、二维数组

  • 静态 int array[99][99];                                  定义了数组,并未初始化
  • 静态 int array[66][66] = { {1,1} , {2,2} };        数组初始化了array[0][0,1]及array[1][0,1]
  • 动态 int (*array)[n] = new int[m][n]; delete []array;
  • 动态 int** array = new int*[m];
    •  for(i) array[i] = new int[n];
    •  for(i) delete []array[i];
    •  delete []array;               多次析构
  • 动态 int* array = new int[m][n];  
    •  delete []array;               数组按行存储

四、***数组

  • int* array = new int[m][3][4];    only第一维可以是变量,其他维数必须是常量,否则会报错
    • delete []array;                   必须进行内存释放,否则内存将泄漏!!-->[来自未知大佬的建议!记得释放内存]

五、数组作为函数形参传递

1、一维数组传递:

  • void func(int array[]);
  • void func(int* array);

2、二维数组传递:

  • void func(int (*array)[n]);
  • void func(int** array);

注:数组名作为函数形参时,在函数体内数组名自动退化为指针,失去其常量特性,可以自增、自减,可以修改

六、字符数组

1、其定义的一般形式是:char 数组名[数据长度]

2、char类型的数组常为字符数组,在字符数组中最后一位为转移字符'\0'(也被成为空字符),该字符表示字符串已结束。在C++中定义了string类,在Visual C++中定义了Cstring类。

3、字符串中每一个字符占用一个字节,再加上最后一个空字符。如:

  • char array[10] = "abcdefj";
  • 虽然只有7个字节,但是字符串长度为8个字节。

      也可以不用定义字符串长度,如:

  • char array[] = "abcdefj";

4、字符数组也可以是二维或多维数组,例如:

  • char c[5][10];

七、小知识点

[做了题你就知道了……]

  • 对数组名进行 sizeof,获取的是数组的字节大小,sizeof(testArray[0]) 是获取第一个元素的字节大小,两者相除得到的是数组元素的个数
  • strlen 是函数,sizeof 是运算符。
  • C++ 中 sizeof 是运算符,作用于字符串表示测量字符串所占的内存大小包括最后的 '\0'。
  • 而 strlen 是函数,用于计算字符串的长度包括最后的 '\0'。

总结

看懂了吗,看懂了理解了吗?去找点题做了看看!或者自己写点代码运行运行

看到这了,点个赞,打赏打赏再走

燕子~燕子~点个赞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值