C/C++中的strlen和sizeof
时间: 2024-06-10 07:04:05 浏览: 130
在C/C++中,strlen和sizeof是两个不同的操作符。
strlen是一个函数,它用于计算字符串的长度,返回的是字符串中的字符数,不包括字符串结束符'\0'。它的函数原型是:
```
size_t strlen(char const* _Str);
```
其中,_Str是要计算长度的字符串。
而sizeof是一个关键字,它用于计算一个变量或数据类型的大小,返回的是以字节为单位的大小。可以用它来计算数组的大小、数据类型的大小等。例如:
```
int a[10];
sizeof(a); // 返回的是整个数组a的大小,即40字节(如果int类型占4字节)。
sizeof(a[10]); // 返回的是a[10]的类型的大小,即4字节(如果int类型占4字节)。
```
请注意,sizeof操作符计算数组的大小时,实际上返回的是整个数组所占的空间,而不是数组中元素的个数。因此,sizeof(a)返回的是数组a的大小,而不是数组a中元素的个数。
相关问题
c++ strlen和sizeof的区别
C语言中,`strlen`和`sizeof`是两个用于获取数据长度的函数/运算符。
`strlen`函数用于获取字符串的长度,即字符串中字符的个数,不包括字符串末尾的空字符('\0')。它需要传入一个以Null字符结尾的字符串作为参数,并返回一个无符号整数(`size_t`类型)表示字符串的长度。
示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello world";
size_t len = strlen(str);
printf("Length of the string is: %zu\n", len); // Output: Length of the string is: 11
return 0;
}
```
`sizeof`运算符用于获取给定类型或对象的字节大小。它不需要参数,但是可以用于任何数据类型、变量、数组或指针。`sizeof`返回一个`size_t`类型的值,表示该类型或对象所占用的字节数。
示例:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
size_t size = sizeof(arr);
printf("Size of the array is: %zu\n", size); // Output: Size of the array is: 20 (assuming int is 4 bytes)
return 0;
}
```
总结:
- `strlen`是用于获取字符串长度的函数,返回字符的个数。
- `sizeof`是用于获取数据类型或对象字节大小的运算符,返回类型或对象所占用的字节数。
阅读全文