c++ 数组皇冠和体育平台出租指针(vector和迭代器的低级复合类型)

一、数组皇冠体育平台出租 haozbbs.com Q1446595067

1.数组的缺点:数组的长度是固定的,无法改变大小;无法知道数组的大小;数组也不提供push_back等类型的操作,用下标进行操作有时候很麻烦;

2.数组的长度:必须是常量,不可以用变量写入;常量必须是定义时就是常量,即使换算得到的也不可以用来定义数组;

3.数组的初始化:全局数组会自动初始化;局部数组不会自动初始化。

eg: char str1[]={'c','+','+'};
char str2[]={'c','+','+','/0'};

    char str3[]="c++";

4.数组的操作:(保证数组下标不会越界)

数组下标的定义:size_t

数组的赋值:每一个数据分别拷贝,不能直接对数组进行操作;

5.尽量使用vector(动态数组)来代替数组;

二、指针

1.指针的定义和初始化:

eg: sp=&s;//sp为指针,代表sp为指针,s为数组,&为取地址符(sp代表的是s的地址,*sp为sp地址的内容)

注:可以靠近变量或者类型写均可,都表示这是一个指针;靠近类型时,定义的指针仅仅是靠近它的变量,其余均为变量;指针一般都要进行初始化;指针可以等于一个常量,但是不能等于变量,变量前必须要加取地址符(*sp只能等于0或者&s或者NULL);指针只能指向同类型的变量地址;

int ival=1024;
int ip=0;//表示指针不指向任何变量
int
ip2=&ival;//ip2中存的是ival的地址

ip=ip2;//ip和ip2均指向ival

2.万能指针:void *pv=&s;//可以指向任何类型的对象,

注:运用的范围较为窄小,仅仅在几种特殊情况下进行使用:与另一个指针进行比较;向函数传递void指针或者从函数中返回void指针 ;向另外一个void*指针赋值。

3.指针和引用:引用(&s=sp)

区别:(1)指针可以先定义,之后在进行初始化;引用必须在声明时进行初始化;

(2)指针通过赋值可以改变其指向的对象;但是引用不可更改,声明初始化以后就不能进行改变;

4.指向指针的指针:int **pi=&ip2;

三、使用指针访问数组

1.示例:

    int ia[]={2,4,5,6,87};
    int *ip=ia;

cout << ia <<endl;
cout<<
ip<<endl;
ip=&ia[4];
cout << *ip <<endl;

2.指针减法:两指针相减,减法得到的是两指针之间的距离;

eg: ptrdiff_t n=ip2-ip;

cout << n<< endl;

3.int laest=*(ip+4); //取出ip+4指向的内容

猜你喜欢

转载自blog.51cto.com/13861786/2139713
今日推荐