C++笔记(数组)

1、数组下标:
    (1)在定义时必须明确。
            ①只能用正整数或const常量,静态或全局变量不可以;
            ②(特) 在new时可以用变量做下标。
    (2)在初始化时:
            ①一维数组,可略;
            ②二维数组,其一维可略,二维不能略。
    (3)在作参数时:
            ①一维数组,略;(写了也被略去)
            ②二维数组,一维略,二维不能略。

2、下标与初始化元素:
    (1)下标省略的,每个元素都应写出;
    (2)下标明确的,可只写前面部分元素,后面的按默认值: 
            ①全局数组、静态数组,默认值为0;
            ②局部数组,默认值不确定。
    (3)元素之间不可以用逗号跳过。

3、字符数组:
    (1)字符数组=字符串
    (2)其末尾字符为' /0 '
    (3)其长度=有效字符数+1,在定义字符数组长度时切记。
    (4)初始化方法
            ① char arr[6] = {"hello"};
            ② char arr[6] = "hello";              //与第①种相同,一般使用这一个
            ③ char arr[6] = {'h','e','l','l','o','/0'};           //主要在特殊字符时使用

4、二维数组初始化:
    (1)二维数组中,第1维表示行,第2维表示列。
    (2)初始化时,可以每行使用1个{},比如int arr[][3]={{1,2,3},{4,5,6}};
                             也可以只使用1个{},比如int arr[][3]={1,2,3,4,5,6};  与上面句子等效。

5、要定义很大的数组时,应建立全局或静态类型的数组。因为局部数组使用栈区,大数组会导致栈溢出。

6、数组长度计算:
    (1)sizeof
     方法:sizeof(数组名)/ sizeof(数组类型名) 
     说明:数组占用字节除以数组类型所占字节,结果为数组元素个数
    (2)strlen
     说明:strlen,求字符串有效长度
     方法:strlen(字符数组名)  //结果为字符数组有效字符长度,不包括末尾的' /0'

注意:
当数组作为函数参数传递时,数组名代表的是数组的首址,而非数组内容,故无法使用sizeof和strlen;
同时,在传址时,应提供2个参数:1个是数组名,代表数组首地址;1个是数组元素个数,以便确定传递的次数。

7、数组相当于指针——常量指针。
  (1)对于指向数组的指针的定义,与指向普通变量的指针定义不同:
    int a=20;
    int p = &a;                //对普通变量定义时,前面要加上&
    int b[20];
    int pi = b;
                 //对数组定义时,前面不用加&:因为数组本身相当于指针

  (2)对于int *p = a[3]来说,a,&a,&a[0]等价,都是数组a的首元素地址。

8、数组是常量,不可修改:如对于数组a[2]来说,a++,++a,a--,--a,a+=3,a-=6等操作都是不允许的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电脑小玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值