首页 > 编程语言 > 详细

sizeof和strlen在一维数组,二维数组中的应用

时间:2021-04-12 18:07:03      阅读:29      评论:0      收藏:0      [点我收藏+]
sizeof的实例

例题一:求arr数组的大小,单位为字节。

int main() {
    char arr[] = "abcdef";
    printf("%d\n", sizeof(arr));
    printf("%d\n", sizeof(arr + 0));
    printf("%d\n", sizeof(*arr));
    printf("%d\n", sizeof(arr[1]));
    printf("%d\n", sizeof(&arr));
    printf("%d\n", sizeof(&arr + 1));
    printf("%d\n", sizeof(&arr[0] + 1));
    return 0;
}

技术分享图片
技术分享图片

strlen实例

计算长度,不能是整型,只能是地址!!!

int main() {
    char arr[] = "abcdef";
        printf("%d\n", strlen(arr));   
        printf("%d\n", strlen(arr + 0)); 
        printf("%d\n", strlen(*arr));
        printf("%d\n", strlen(arr[1]));
        printf("%d\n", strlen(&arr));
        printf("%d\n", strlen(&arr + 1));
        printf("%d\n", strlen(&arr[0] + 1));
        return 0;
}

输出结果:
技术分享图片
答案解析:
技术分享图片

指针数组中sizeof的应用

注意,char p="abcdef",只是把a的地址存放到p中,因为p是char 类型,存放不下“abcdef".但是我们的p通过a就能找到abcdef\0.

int main() {
    char *p = "abcdef";
    printf("%d\n", sizeof(p));
    printf("%d\n", sizeof(p+1));
    printf("%d\n", sizeof(*p));
    printf("%d\n", sizeof(p[0]));
    printf("%d\n", sizeof(&p));
    printf("%d\n", sizeof(&p+1));
    printf("%d\n", sizeof(&p[0]+1));
    return 0;
}

输出结果:
技术分享图片
答案解析:
技术分享图片

二维数组中sizeof和strlen的应用

int main() {
    int a[3][4] = { 0 };
    printf("%d\n", sizeof(a));  
    printf("%d\n",sizeof(a[0][0]));  
    printf("%d\n", sizeof(a[0]));
    printf("%d\n", sizeof(a[0]+1));
    printf("%d\n", sizeof(*(a[0]+1)));
    printf("%d\n", sizeof(a+1));
    printf("%d\n", sizeof(*(a+1)));
    printf("%d\n", sizeof(&a[0]+1));
    printf("%d\n", sizeof(*(&a[0]+1)));
    printf("%d\n", sizeof(*a));
    printf("%d\n", sizeof(a[3]));
}

输出结果:
技术分享图片
答案解析:
技术分享图片

sizeof和strlen在一维数组,二维数组中的应用

原文:https://blog.51cto.com/u_15100290/2701486

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!