1. strlen详解
strlen() 是一个库函数, 用于计算字符串长度的函数.
char arr1[] = "Hello";
printf("%d \n", strlen(arr1)); //6
/*
注意这种情况: 这里是因为末尾的'\0' 没有分配存储空间, 实际上等效于
char arr2[10] = { 'H', 'e', 'l', 'l', 'o' };
*/
char arr2[5] = "Hello";
printf("%d \n", strlen(arr2)); //21(随机值)
2. sizeof详解
sizeof() 实际上是一个C/C++语言的操作符, 用于获取一个变量, 数据类型, 或者表达式所占用的内存大小.(以字节为单位)
#include <stdio.h>
int main() {
char arr1[] = "Hello";
char arr2[10] = "Hello";
//'\0'也占内存空间, 但在并不算在字符串长度内.
printf("%d \n", sizeof(arr1)); //6
printf("%d \n", sizeof(arr2)); //10
return 0;
}
3. 数组大小的计算
值得注意的是, 在数组为char类型时, sizeof(arr) 和sizeof(arr)/sizeof(arr[0])
计算的到的大小时一样的, 因为char类型大小为1个字节.
int arr[10];
int sz = sizeof(arr)/sizeof(arr[0]);
标签:arr,char,arr2,printf,sizeof,strlen
From: https://blog.51cto.com/u_16120559/6318745