#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = { 'a','b','c','d','e','f' };
printf("%d\n", strlen(arr));//随机值
//arr就是首元素的地址,字符串的结束标志是'\0'(ASCII码值是0),
//strlen得到arr后,从arr数组首元素的地方开始计算字符串的长度,直到\0结束,但arr数组中没有\0,在什么位置结束未知
printf("%d\n", strlen(arr + 0));//随机值
//arr就是首元素的地址,arr+0还是首元素的地址
printf("%d\n", strlen(*arr));//err
//arr是首元素地址,*arr是首元素'a', -- 97,strlen就把'a'的ASCII码值当成地址,会非法访问内存
printf("%d\n", strlen(arr[1]));//err
//'b' --- 98
printf("%d\n", strlen(&arr));//随机值
//&arr是数组的地址,数组的地址也是指向数组起始位置。
printf("%d\n", strlen(&arr + 1));//随机值
printf("%d\n", strlen(&arr[0] + 1));//随机值
return 0;
}
字符数组strlen相关问题
最新推荐文章于 2022-10-16 16:12:45 发布