strlen的使用

sterlen: 作用求取字符串长度,从内存某个位置开始扫描,直到‘\0’停止,不包含‘\0’.

char arr[] = “abcdef”;

    printf("%d\n", strlen(arr));// 6 arr代表首元素地址,从'a'开始到'\0'
    printf("%d\n", strlen(arr+0));// 6 arr+0代表首元素地址
    printf("%d\n", strlen(*arr));// err 崩溃 *arr 解引用到a,不知从何开始找起,程序崩溃
    printf("%d\n", strlen(arr[1]));//err 崩溃 原因同上
    printf("%d\n", strlen(&arr));// 6 &arr取到整个元素地址,与首元素地址相同
    printf("%d\n", strlen(&arr + 1));//x 随机值  &arr+1取到数组下面的地址,不知道何时遇到'\0'
    printf("%d\n", strlen(&arr[0]+1));// 5 取到数组第二个元素的地址
    char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };//arr中不包含字符'\0'
    printf("%d\n", strlen(arr));//x 随机值 不知何时有\0停止
    printf("%d\n", strlen(arr + 0));//x 同上
    printf("%d\n", strlen(*arr));//err *arr 解引用到a,不知从何开始找起,程序崩溃
    printf("%d\n", strlen(arr[1]));//err同上
    printf("%d\n", strlen(&arr));//x 
    printf("%d\n", strlen(&arr + 1));//x 
    printf("%d\n", strlen(&arr[0] + 1));//x 
    char *p = "abcdef";//p代表数组的首元素地址
    printf("%d\n", strlen(p));//6 整个字符串长度 不包括\0
    printf("%d\n", strlen(p + 1));//5 第二个元素开始字符串长度
    printf("%d\n", strlen(*p));//err *p是一个具体的值 系统崩溃
    printf("%d\n", strlen(p[0]));//err 同上
    printf("%d\n", strlen(&p));//x 随机值 p的地址(用二级指针来存放p的地址,也就是地址的地址)之后不知何时遇到\0停止
    printf("%d\n", strlen(&p + 1));//x p地址之后的空间不知何时遇到\0停止
    printf("%d\n", strlen(&p[0] + 1));//5 第二个元素开始字符串长度

备注
strlen 的使用是接受一个地址,然后开始扫描,直到遇到’\0’.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值