栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

指针数组、数组指针、函数指针的区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

指针数组、数组指针、函数指针的区别?

指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,在32 位系统下任何类型的指针永远是占4 个字节。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下任何类型的指针永远是占4 个字节,至于它指向的数组占多少字节,不知道,具体要看数组大小。它是“指向数组的指针”的简称。一个小栗子:

int arr[] ={1,2,3,4,5};int *ptr =(int *)(&arr+1);  //2  5int *ptr =(int *)(arr+1);   //2  1cout<<*(arr+1)<<" "<<*(ptr-1)<<endl;

//数组名arr可以作为数组的首地址,而&a是数组的指针。//arr和&arr指向的是同一块地址,但他们+1后的效果不同,arr+1是一个元素的内存大小(增加4)//而&arr+1增加的是整个数组的内存1234567数组指针(行指针)

int a[2][3] = {{1,2,3},{4,5,6}};int (*p)[3];p = a;p++;cout<<**p<<endl;  //4  the second rank

12345

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号