为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

指针数组与数组指针

2011-04-18 6页 doc 22KB 39阅读

用户头像

is_657938

暂无简介

举报
指针数组与数组指针int *p=NULL;相当于int *p; p=NULL;声明一个int指针,然后指向为空。 int *p=NULL;相当于int *p; p=NULL;声明一个int指针,然后指向为空。 int *p;*p=NULL;这样写一般会有警告,看警告信息就明白了,*p是取指针的值,也就是p所指向的整数,而NULL是指针类型,这里是将指针类型复制给整形。 int *p[3] p是一个数组,此数组有3个元素,每个元素都是int*类型,也就是指向整型数据的指针类型。 int a=10,b=20,c=30; int*p[3]={&a,&...
指针数组与数组指针
int *p=NULL;相当于int *p; p=NULL;声明一个int指针,然后指向为空。 int *p=NULL;相当于int *p; p=NULL;声明一个int指针,然后指向为空。 int *p;*p=NULL;这样写一般会有警告,看警告信息就明白了,*p是取指针的值,也就是p所指向的整数,而NULL是指针类型,这里是将指针类型复制给整形。 int *p[3] p是一个数组,此数组有3个元素,每个元素都是int*类型,也就是指向整型数据的指针类型。 int a=10,b=20,c=30; int*p[3]={&a,&b,&c}; 而int(*p)[3]中的p是一个指向数组的指针,此数组有3个int类型的元素。例如: int a[3]={1,2,3}; 那么p就是指向这个数组a的指针。 int(*p)[3]=&a; // 这里赋值一定要用取地址符号。也就是取数组a的地址。 不可以这样赋值: int(*p)[3]=a; // error :类型不兼容。a本来是数组类型,是不可以赋值给int(*)[3]这个类型的。 但是这样是可以的int *p1=a; // ok 因为a可以隐式转换为int*类型,其值实际上就是数组第一个元素的地址,也就是&a[0] *p[3] 这个是一个指针数组 它所代表的意思是每一个元素都相当于一个指针变量 而(*p)[3] p是一个指针变量,表示指向含有3个整型元素的一维数组 前者可以类似于二维数组 把它看成是由3个一维数组组成的 经常与字符串搭配使用 比较方便操作 把多个字符串放在一个指针数组中 后者是用来引用二维数组的 像a[2][3]这个二维数组 我们既可用指针来引用 又可用(*p)[3]来引用 一般使用(*p)[3 #include int main() { int i,j; int a[2][3]={3,4,5,6,7,8}; int *p[3] ;//表示存贮是3个整型变量地址; int (*q)[3]; //表示指向3个整型数组元素的一维数组指针 //把第一行三个元素地址存放在p指针数组中 for( i=0;i<3;++i) p[i]=&a[0][i]; //输出指针数组中地址所对应值 for( j=0;j<3;++j) cout<< *p[j]<<" "; cout<
/
本文档为【指针数组与数组指针】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索