码迷,mamicode.com
首页 > 编程语言 > 详细

指针与数组

时间:2014-11-24 11:27:12      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   bs   代码   size   nbsp   har   对象   return   

先来体会下数组与指针的区别,看如下代码:

int GetSize(int data[])
{
return sizeof(data);
}


int _tmain(int argc, _TCHAR* argv[])
{
int data[] = {1,2,3,4,5};
int size1 = sizeof(data);

int *data2 = data;
int size2 = sizeof(data2);

int size3 = GetSize(data);

cout<<size1<<endl<<size2<<endl<<size3<<endl;

getchar();
return 0;
}

运行输出是20,4,4。

这里可以得出三点结论

1、对数组运用sizeof运算符可以得到数组的大小。sizeof使计算对象所占的内存的。

2、数组名也是一个指针。(sizeof一个指针永远只能得到一个指针变量所占的内存,这跟机器字长有关,32位机是4个字节)

     data2虽然指向了数组data1的第一个数字,但他本质任然是个指针。

3、函数参数用数组时,实际跟指针一样,调用的时候,数组指针自动退化为普通指针,所以size3得到的是4。

指针与数组

标签:ar   sp   bs   代码   size   nbsp   har   对象   return   

原文地址:http://www.cnblogs.com/Mr-Zhong/p/4118036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!