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

来源:互联网 发布:windows预览体验无版本 编辑:程序博客网 时间:2024/06/03 15:05
#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.


数组与指针之间的关联:数组类似于指针,数组名即为指针,指向数组的第一个元素,指针也可访问数组。用指针访问数组时,要注意查找边界问题,指针无法知道数组的大小,

0 0