您的位置:首页 > 理论基础 > 数据结构算法

数组与指针(剑指offer数据结构部分)

2015-05-13 10:34 148 查看
#include<stdio.h>
int getSize(int data[ ])
{
return sizeof(data);
}

int main()

{
int data1[] = {1,2,3,4,5};
int size1 = sizeof(data1);

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

int size3 = getSize(data1);

printf("%d %d %d ",size1,size2,size3);
}


上例结果为20,4,4。分析:size1要得到的是数组data1的大小,故每个整数占了4个字节,故size1=20,data2是指向数组data1第一个元素的指针,size2要得到指针data2的大小,相当于求一个指针的大小,故指针大小一般为4个字节,数组data1作为getSize函数的参数进行传递,数组自动退化成为同类型指针,所以返回值就是指针的大小而不是数组的大小,为4.

数组与指针之间的关联:数组类似于指针,数组名即为指针,指向数组的第一个元素,指针也可访问数组。用指针访问数组时,要注意查找边界问题,指针无法知道数组的大小,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: