sizeof & strlen

本文详细解释了C/C++中sizeof运算符与strlen函数的区别。sizeof用于计算对象或类型的字节大小,而strlen用于计算字符串的长度直至遇到空字符结束。此外,还提供了示例程序帮助理解两者的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常会遇到问 sizeofstrlen 的区别,虽然知道它们之间的区别,但都没有系统的认识到,因此在此处记录。

sizeof

sizeofC/C++ 中的一个运算符,用于计算对象或类型所占空间的字节大小。它有如下两种表示方式:

sizeof(type)
sizeof expression
  1. sizeof 不能用于函数类型(fountion types )、不完整类型(incomplete types)以及位域(bit-field glvalues)。
  2. sizeof 运用到引用类型时,它返回引用类型的字节大小。
  3. sizeof 运用到类类型时,它返回包含对齐填充的字节大小。
  4. sizeof 运用到空类上时,总是返回 1
  5. sizeof 运用于表达式时,它并不执行表达式。

strlen

strlenC/C++ 中的一个函数,用于计算字符串的字节长度,以空字符(null)结尾。由于 strlen 是函数,因此后面必须跟括号,其函数原型如下:

size_t strlen(const char *str);

由函数原型可知, strlen 的参数是字符串指针,从而不能给其他类型参数。

示例

sizeofstrlen 示例程序

#include <stdio.h>
#include <string.h>

int main()
{
  char str1[] = "\0";  // 默认会在字符串后面添加一个'\0',因此sizeof计算出来为2
  char str2[10] = "abcdef";
  char str3[1] = "\0";

  int a = 7, b = 3;
  int c = 0;

  printf("sizeof & strlen\n");
  printf("sizeof(str1) = %zd\n", sizeof(str1));
  printf("strlen(str1) = %zd\n", strlen(str1));
  printf("sizeof(str2) = %zd\n", sizeof(str2));
  printf("strlen(str2) = %zd\n", strlen(str2));
  printf("sizeof(str3) = %zd\n", sizeof(str3));
  printf("strlen(str3) = %zd\n", strlen(str3));

  printf("\nsizeof\n");
  printf("sizeof(c=a+b) = %zd\n", sizeof(c=a+b));
  printf("c = %d\n", c);

  return 0;
}

输出结果如下:

sizeof & strlen
sizeof(str1) = 2
strlen(str1) = 0
sizeof(str2) = 10
strlen(str2) = 6
sizeof(str3) = 1
strlen(str3) = 0

sizeof
sizeof(c=a+b) = 4
c = 0

总结

  1. sizeof 是运算符, strlen 是函数;
  2. sizeof 后可跟括号也可不跟括号,strlen 是函数必须跟括号;
  3. sizeof 后跟类型或表达式, strlen 参数类型为char *
  4. sizeof 计算类型或表达式所占字节大小, strlen 计算字符串长度(遇到\0结束);
  5. sizeof 后接表达式时,不会对表达式求值。
  6. C++ 中对空类运用 sizeof 总是返回 1

参考文献

[1] http://en.cppreference.com/w/cpp/language/sizeof
[2] http://www.cplusplus.com/reference/cstring/strlen/?kw=strlen

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在网页设计中,为图片添加文字是一种常见的需求,用于增强视觉效果或传达更多信息。本文将介绍两种常用的方法:一种是将图片设置为背景并添加文字;另一种是利用&lt;span&gt;标签结合CSS定位来实现。 这种方法通过CSS实现,将图片设置为一个容器(通常是&lt;div&gt;)的背景,然后在容器中添加文字。具体步骤如下: 创建一个包含文字的&lt;div&gt;元素: 使用CSS设置&lt;div&gt;的背景图片,并调整其尺寸以匹配图片大小: 如有需要,可使用background-position属性调整图片位置,确保文字显示在合适位置。这样,文字就会显示在图片之上。 另一种方法是将文字放在&lt;span&gt;标签内,并通过CSS绝对定位将其放置在图片上。步骤如下: 创建一个包含图片和&lt;span&gt;标签的&lt;div&gt;: 设置&lt;div&gt;为相对定位,以便内部元素可以相对于它进行绝对定位: 设置&lt;span&gt;为绝对定位,并通过调整top和left属性来确定文字在图片上的位置: 这种方法的优点是可以精确控制文字的位置,并且可以灵活调整文字的样式,如颜色和字体大小。 两种方法各有优势,可根据实际需求选择。在实际开发中,还可以结合JavaScript或jQuery动态添加文字,实现更复杂的交互效果。通过合理运用HTML和CSS,我们可以在图片上添加文字,创造出更具吸引力的视觉效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值