举例介绍 sizeof和strlen
时间: 2023-02-28 09:27:47 浏览: 76
`sizeof` 是 C 语言的一个内置运算符,用于计算变量或类型的字节大小。例如:
```
int a;
printf("Size of a: %lu bytes\n", sizeof(a));
```
输出:
```
Size of a: 4 bytes
```
`strlen` 函数是 C 语言标准库函数,用于计算字符串的长度(不包括结尾的 null 字符)。例如:
```
char str[] = "Hello, world!";
printf("Length of str: %lu\n", strlen(str));
```
输出:
```
Length of str: 13
```
相关问题
sizeof和strlen,len的区别
sizeof是一个运算符,用于获取变量或数据类型的字节大小。它返回的是数据在内存中所占的字节数。而strlen是一个函数,用于计算字符串的长度,即字符串中字符的个数,它返回的是字符的个数。
举例来说,如果有一个字符数组arr,其中存有字符串"Hello",那么sizeof(arr)返回的是该字符数组所占的字节数,而strlen(arr)返回的是字符串中字符的个数,即5。
另外,需要注意的是,当使用sizeof运算符来计算指针时,它返回的是指针变量本身的字节大小,而不是指针指向的数据所占的大小。例如,对于一个指向字符串常量的字符指针ss,sizeof(ss)返回的是指针变量ss本身的字节大小,通常是4字节,而不是字符串的长度。
所以,sizeof和strlen的区别在于,sizeof返回的是数据类型或变量所占的字节数,而strlen返回的是字符串中字符的个数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [sizeof与strlen的区别](https://blog.csdn.net/u010388659/article/details/104994738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
sizeof和strlen的区别和使用详解,请举例说明
`sizeof` 和 `strlen` 是两个在C语言中常用的操作符,用于获取变量或数据的信息。
1. `sizeof`:
- `sizeof` 是一个关键字,用于获取数据类型或变量所占用的字节数。
- 它在编译时就能够确定,不需要运行时计算。
- `sizeof` 返回的结果是一个 `size_t` 类型的无符号整数。
- `sizeof` 可以用于计算数据类型、数组、结构体、联合体以及指针等的大小。
示例代码:
```c
int num = 10;
size_t size = sizeof(num);
printf("Size of num: %zu bytes\n", size);
int arr[5];
size_t arrSize = sizeof(arr);
printf("Size of arr: %zu bytes\n", arrSize);
```
输出:
```
Size of num: 4 bytes
Size of arr: 20 bytes
```
2. `strlen`:
- `strlen` 是一个函数,用于计算字符串的长度,即字符串中字符的个数,不包括终止符 `\0`。
- 它需要在运行时遍历字符串中的字符来计算长度,因此时间复杂度为 O(n),n 是字符串的长度。
- `strlen` 返回的结果是一个 `size_t` 类型的无符号整数。
示例代码:
```c
char str[] = "Hello, World!";
size_t length = strlen(str);
printf("Length of str: %zu\n", length);
char emptyStr[] = "";
size_t emptyLength = strlen(emptyStr);
printf("Length of emptyStr: %zu\n", emptyLength);
```
输出:
```
Length of str: 13
Length of emptyStr: 0
```
需要注意的是,`sizeof` 和 `strlen` 的作用不同,`sizeof` 是用于获取数据类型或变量的大小,而 `strlen` 是用于计算字符串的长度。在使用 `strlen` 时要确保字符串以 `\0` 结尾,否则可能导致计算结果不准确。