0
点赞
收藏
分享

微信扫一扫

sizeof与strlen

众所周知,在数组arr[]中,arr常用于代表数组首元素地址,除去两个特例。

1.sizeof(arr)代表数组的大小。

2.&arr代表取整个的地址。

sizeof与strlen有什么区别,就由以下例子来说明,我们在X86的环境下执行程序。

#include<stdio.h>

{

int main();

int arr[5]={0};

//首先是sizeof

printf("%d",sizeof(arr));

//结果是20,单位是字符

sizeof与strlen_野指针

//由于sizeof的作用,sizeof(arr)代表的是数组的大小,arr[5]数组内的五个整型元素,加起来就是20.

printf("%d“,sizeof(&arr));

//结果是4,单位是字符

sizeof与strlen_数组_02

//&arr代表数组的指针,而指针的大小只与环境有关,在X86的环境下大小为4,在X64的环境下大小为8.

//然后是strlen.

//strlen本人目前了解的还有不少问题,但有一点是strlen的返回类型实际上是size_t strlen(const char *),所以strlen里应该放的类型是指针类型,放置其他类型,一是会导致类型错误,二是会被strlen认定为指针,常常会识别为野指针,导致程序出错。













举报

相关推荐

0 条评论