我是靠谱客的博主 英俊御姐,最近开发中收集的这篇文章主要介绍sizeof(数组名)和sizeof(指针名)的结果是不同的,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

数组和指针的sizeof的结果 是不同的

  • 当arr是一个数组时,sizeof(arr)的结果是整个数组中的元素所占的字节的个数
  • 而当p是一个指针时,即使指向某个数组,但sizeof(p)的结果在32为系统中一定是 4

验证代码如下:

/*

数组和指针的sizeof的结果 是不同的 
当arr是一个数组时,sizeof(arr)的结果是整个数组所占的字节的个数
而当p是一个指针时,即使指向某个数组,但sizeof(p)的结果在32为系统中一定是 4 
*/

#include<stdio.h>

int getSize(int arr[]){
    return sizeof(arr);
}

int main(void){
    int arr[]={1,2,3,4};
    int size1=sizeof(arr);

    int *p1=arr;
    int size2=sizeof(p1);

    int size3=getSize(p1);

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

    return 0;
} 

程序的运行结果是:16 4 4

最后

以上就是英俊御姐为你收集整理的sizeof(数组名)和sizeof(指针名)的结果是不同的的全部内容,希望文章能够帮你解决sizeof(数组名)和sizeof(指针名)的结果是不同的所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部