第14章:数组

1:定义:相同的名称和类型的变量的集合
数组通常比较大,为了节省内存,c++规定数组在程序中只能有一个原本,没有副本
数组中的变量叫数组元素
    int     a        [10]
数组的类型 数组的名称 数组的下标
2:数组下标越界
3:数组的初始化
    1:数组的部分初始化 int array[20]={0}
    2:int array[] = {1,2,3,4,5}
4:斐波那契数列
5:数字的排序:
    三个变量:
    j:保存比较的回数
    t:交换两个数组的临时变量
    i:数组元素编号比较的次数
    例如:6个元素比较的回数为5 ,比较的元素总数为6-比较的回数变量
    第1回比较的次数为5次
    第2回比较的次数为4次(因为排列到最后的元素不需要再比较了)
    第3回比较的次数为3次
    第4回比较的次数为2次
    第5回比较的次数为1次
6:数组名:
    1:在c++中声明数组时,系统自动生成一个指向该数组的指针,该指针指向数组第一个元素的地址
    2:数组名与函数
    普通变量与数组在函数中的传递的不同
    void a(int x);
    int main()
    {
        int x;
        a(x);
        return 0;
    }
    void a(int x)
    {
        //有一个x的副本
    }
    2:数组作为函数的参数
    void a(int[]);
    int main()
    {
        int x;
        a(x);
        return 0;
    }
    void a(int x[])
    {
        //没有的副本,只有一个数组x的内存地址
    }
7:函数传递与接受数组的三种方式
    1:int array[]简要数组声明,不需说明该数组有多少个元素
    2:int array[30]标准数组声明
    3:int *parray;指针声明
8:数组元素查找
    1:用递增法查找数组元素
    2:用二分法查找数组元素
    int o = 0;
    int h = n -1;
    int i;
    while (o <=h)
    {
        i = (o+h)/2
        if (a[i] == findvar)//findvar要查找的值
        {
        return i;
        }
    }
9:一般来说数组存放在栈中,我们可以用new来在堆中申请内存,关键字new用来生成某种类型的对象,在堆中创建的对象都是匿名的
10:将对象存放在栈中 A a[100],将对象存放在堆中 A *a = new A[100]
11:枚举常量与数组如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型
enum weekday{noe,two,three,four,five,six,seven}day;
枚举变量day
枚举常量{noe,two,three,four,five,six,seven}
枚举变量的值只能为枚举常量(强制类型转换例外 day = (enum weekday)100)
12:字符数组(c语言风格的字符串)
char ch[4] = {'1','2','3','\0'};或者 char ch[4] = {'1','2','3'};编译器会自动加上字符数组结束标志
cout<<ch<<endl;
c语言风格的字符串以字符串结束标志结尾
13:字符串数组 char ch[] = {"hello world"};不叫字符数组了
14:字符数组的输入问题
cin.get(a,10)
15:字符串处理函数 是c语言的
    1:ch1=strcat(ch1,ch2)ch1的长度必须要ch1+ch2大
    2:ch1=strcpy(ch1,ch2)必须满足第一个参数必须要能容纳第二个参数,第一个参数必须为字符数组
    3:strcmp(ch1,ch2)
    4:strups(ch1)转换为大写
    5:strlwr(ch1)转换为小写
    6:strlen(ch1)获得字符数组的长度(长度不包括字符串结束标志)
16:重载数组下标operator[]只限于本类的对象使用不能重载为友元函数以及不能为static函数
class A
{
    public:
        A(l){length = l;size = new char[l];}
        ~A(){delete []size;}
        int getLength() return length;}
        char& operator[](int i)
        {
        if (i>=0 && i < length)
        return size[i];
        else
        return size[length-1];
        }
    private:
        int length;
        char *size;
};
A a(7);
a[0] = 'a';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值