0
点赞
收藏
分享

微信扫一扫

Vivado HLS C/RTL 联合仿真时间

晚熟的猫 2024-10-31 阅读 7

1、sizeof和strlen的区别

(1)sizeof

sizeof是单目操作符,不是函数,计算变量所占内存空间大小。单位是字节。如果操作数是类型的话,计算的是使用这种类型创建的变量所占内存空间的大小。不在乎内存找那个存放什么数据。

注意:如果sizeof的操作数是变量,则可以省略sizeof后面的括号,省略括号这一点也侧面地说明了sizeof不是函数。函数使用的时候,不能省略函数后面的括号。

例如:

代码示例:

(2)strlen

使用strlen函数时,要包含头文件:string.h

strlen是C语言库函数,功能是求字符串长度。

函数原型:  size_t    strlen  (const    char*   str)

统计的是strlen函数的参数str中这个地址向后,\0之前字符串中字符的个数。

strlen函数会一直向后找\0,字符,直到找到为止,所以可能存在越界查找。

代码实例:
(3)sizeof和strlen的对比

sizeof

1))sizeof是操作符

2))sizeof计算操作数所占内存的大小,单位是字节

3))不关注内存中存放什么数据

注意:sizeof括号中有表达式的话,表达式是不参数计算的。

代码示例:

strlen

1))strlen是库函数,使用时需要包含头文件string.h

2))strlen是求字符串长度的统计的是\0之前字符的个数、

3))关注内存中是否有\0,如果没有\0就会继续往后找,可能会越界。

举报

相关推荐

0 条评论