您的位置:首页 > 其它

数组和指针关系论述

2016-02-23 00:06 148 查看
指针的初始定义
与指针指向简单变量定义有些差别,

int wages[3] = { 10, 11, 12 };

int *pt;

指针指向数组定义的方法有三种:

(1)

int *pt = &wages[0];

(2)

int *pt = wages;

(3)

int *pt;

pt= wages;

2、对于数组,其有如下特点:

cout << arrayname << endl; //输出数组第一个元素的地址

cout << &arrayname[0] << endl; //输出数组第一个元素的地址



arrayname = &arrayname[0];

数组是特殊的指针,任何数组都满足:

typeName arrayname[0] = *arrayname;

typeName arrayname[i] = *(arrayname + i);

&arrayname[i] = arrayname+i;

3、关于指针、数组占据内存的大小有:

cout << sizeof(arrayname) << endl; //输出的是整个数列元素所占内存的大小

cout << sizeof(arrayname[i]<< endl; //输出的是数列中一个元素所占内存的大小

cout << sizeof(pointname) << endl; //输出是指针所占内存的大小,对于一台设备是固定值,不随指针所指数据类型变化而变化

cout << sizeof(*pointname) << endl; //输出是指针所指数列中一个元素所占内存的大小

指针指向数组建立对应关系时,此时指针所指的值是数组中的第一个值,指针所指的地址是数列第一个元素的地址,即:

cout << pointname << endl;

cout << &arrayname[0] << endl; //三者等价

cout << &arrayname << endl;



*pointname = arrayname[0];

pointname = &arrayname[0];

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: