sizeof()和strlen()

原创 2018年04月17日 16:04:19

sizeof

sizeof是c语言中的一个关键字,同时也是一个操作符,不是一个函数,语句sieof(int)就可以说明sizeof确实不是一个函数,因为函数接纳形参(一个变量),没有哪个函数会接纳一个数据类型(如int)为形参;

char value[] = {1, 2, 3, 4, 5};
sizeof(value); //结果5;这是一个字符数组,大小为1*5=5;

char ch[] = "12345";
sizeof(ch); //结果6, 这是一个字符串,所以计算到\0位置,即5+1=6;

strlen

char *ss = "0123456789";
sizeof(ss); //结果4,ss是指向字符串常量的字符指针;
strlen(ss); //结果10,计算到\0之前的位置;
sizeof(*ss); //结果1,*ss是第一个字符;

char ss[100] = "0123456789";
sizeof(ss); //结果100;表示在内存中的大小是100*1;
strlen(ss); //结果10;strlen是到\0为止之前的长度

int ss[100] = "0123456789";
sizeof(ss); //结果400,ss表示在内存中的大小是4*100=400
strlen(ss); //错误,strlen的参数只能是char*,且必须以\0结尾;

参考:

[1]嵌入式系统高级c语言编程 P32
[2]硬币找零问题(动态规划求解)

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/baidu_35679960/article/details/79976281

关于 strlen 与 sizeof 的区别

关于 strlen 与 sizeof 的区别,我相信很多人都有所了解。以下我总结了几点关于strlen 与 sizeof 的区别和注意事项。 1. strlen 是函数,sizeof 是运算符。 2....
  • zhengqijun_
  • zhengqijun_
  • 2016-07-03 14:23:19
  • 2518

sizeof与strlen的区别

char str[20]="0123456789"; int   a=strlen(str); /*a=10;strlen 计算字符串的长度,以为字符串结束标记。 int   b=sizeof(str...
  • 21aspnet
  • 21aspnet
  • 2007-03-24 16:24:00
  • 55388

C++中sizeof与strlen的区别

1.    Strlen 是函数,strlen(char*)函数求的是字符串的实际长度,直到遇到第一个'\0',然后就返回计数值,且不包括'\0',函数的返回值值在运行时确定。参数是指针或字符数组,...
  • u012441543
  • u012441543
  • 2015-05-19 19:47:06
  • 719

sizeof和strlen区别详解

"引自百度百科" strlen strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0...
  • yangle4695
  • yangle4695
  • 2016-08-09 20:46:37
  • 2500

C语言中的strlen与sizeof的区别

sizeof与strlen是有着本质的区别,sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾。区别如下: (1) sizeof是一个C语言中的一个单目运算...
  • Yelbosh
  • Yelbosh
  • 2013-10-12 19:04:12
  • 3893

C语言中sizeof和strlen的区别与联系

C语言中sizeof和strlen的区别与联系         在学习C语言的时候发现经常将sizeof和strlen弄混淆,今天有遇到这个问题,所以查了一些资料,将他们总结在下面,虽然不是很全,但已...
  • zhanghao864442969
  • zhanghao864442969
  • 2015-09-08 23:39:26
  • 728

[面试题]sizeof与strlen的区别

例题: constchar *p = "Hello World"; char p[] = "Hello World";分别求长度和所占用空间大小,有啥区别? 答:求长度都可以用strlen(p),求占...
  • SunnyYoona
  • SunnyYoona
  • 2014-09-07 10:40:05
  • 3762

【linux c】sizeof与strlen的区别简述_学习笔记_008

过一个简单的程序来了解sizeof和strlen的用法,以及和二者的区别。#include #include void size() { printf("\n**************...
  • qq_30594349
  • qq_30594349
  • 2016-07-16 15:49:08
  • 671

C++ sizeof 与 strlen 小结

1.sizeof 的适用场合 (1)sizeof的主要用途是与存储分配和I/O系统那样的例程进行通信; void *malloc(size_t size); size_t fread(void *pt...
  • u013630349
  • u013630349
  • 2015-08-12 17:52:17
  • 991

_countof、sizeof、strlen的区别和用法

1  countof:是系统定义的一个宏,求取元素的数组的元素个数 2  sizeof:运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,获得保证能容纳实现...
  • oshirdey
  • oshirdey
  • 2014-03-12 22:25:17
  • 3669
收藏助手
不良信息举报
您举报文章:sizeof()和strlen()
举报原因:
原因补充:

(最多只允许输入30个字)