https://blog.csdn.net/hanjing_1995/article/details/51539532
在之前的博客中,我也探索过strlen,sizeof区别,详情可见博客http://10740184.blog.51cto.com/10730184/1705820。
关于strlen,sizeof均可求字符串长度,这两者是笔试面试常考的知识点。
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- //void Test1()
- //{
- // char* arr = "hello world!";
- // int len1 = sizeof(arr); //4,地址的大小均为4字节
- // int len2 = strlen(arr); //12,找到‘\0’,共12字节
- // printf("sizeof:%d\n", len1);
- // printf("strlen:%d\n", len2);
- //}
- //void Test2()
- //{
- // char arr[20] = "hello world!";
- // int len1 = sizeof(arr); //-->20只看类型大小
- // int len2 = strlen(arr); //12,找到‘\0’,没有'\0'长度
- // printf("sizeof:%d\n", len1);
- // printf("strlen:%d\n", len2);
- //}
- //void Test3()
- //{
- // char arr[] = "hello world!";
- // int len1 = sizeof(arr); //13,有‘\0’长度
- // int len2 = strlen(arr); //12,找到'\0',无‘\0’长度
- // printf("sizeof:%d\n", len1);
- // printf("strlen:%d\n", len2);
- //}
- //void Test4()
- //{
- // char arr[] = { 'h', 'e', 'l', 'l', 'o' };
- // int len1 = sizeof(arr); //5,自己判断出长度,无'\0'长度
- // int len2 = strlen(arr); //随机值,找不到'\0'
- // printf("sizeof:%d\n", len1);
- // printf("strlen:%d\n", len2);
- //}
- void Test5()
- {
- char arr[10] ;
- int len1 = sizeof(arr); //10,自己判断出长度,无'\0'长度
- int len2 = strlen(arr); //随机值,找不到'\0'
- printf("sizeof:%d\n", len1);
- printf("strlen:%d\n", len2);
- }
- int main()
- {
- /*Test1();*/
- /*Test2();*/
- /*Test3();*/
- /*Test4();*/
- Test5();
- system("pause");
- return 0;
- }
本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1740461