关于sizeof运算符在指针,数组中的应用

int main(int argc, const char * argv[]) {
    //sizeof
    /*
     sizeof(数据类型)
     此运算符功能:返回值就是该数据类型所占的字节数。

     sizeof(变量名)
     此运算符功能:返回值就是该变量所占的字节数。
     */
    int arr[]={3,4,5,6,7,6,8,42,9};
    int* p1 = &arr[0];
    int a = sizeof(p1);//p1本身是一个变量名,这里求的是p1变量所占字节数,同时,该变量里面存储的是arr【0】的地址
    int a2 = sizeof(*p1);//*p1就是指向的元素本身,因此,这里求的是arr【0】这个元素的占用字节数
    int b = sizeof(arr);//求一个数组占的字节数
    int c = sizeof(arr)/sizeof(int);//求数组的长度,有多少个元素
    printf("a=%d ; a2=%d ; b=%d ; c= %d  \n",a,a2,b,c);
    //地址长度根据系统不一样,有不同的长度64--》8;32--》4;16--》2;
   
    return 0;
}

output:
a=8 ; a2=4 ; b=36 ; c= 9
Program ended with exit code: 0

发布了18 篇原创文章 · 获赞 0 · 访问量 207

猜你喜欢

转载自blog.csdn.net/weixin_46456339/article/details/105096928