【笔试常考】C语言:深度剖析strlen,sizeof

原创 2016年05月30日 17:16:53

    在之前的博客中,我也探索过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

C语言面试笔试常考 常识点

1、局部变量能否和全局变量重名?    答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有...

C语言链表在笔试面试中常考问题总结

1、实现单链表逆置    无头结点: 1 #include  2 #include  3   4 typedef struct node{  5     int data;  6     struc...

彻底弄清几乎每次必考的sizeof关键字(笔试面试常考)

一个人从不上当,那是因为他心里阴暗. 下面看看几乎每次笔试都会碰到的sizeof关键字.   #include using namespace std; struct A {}; struct B...
  • stpeace
  • stpeace
  • 2012年11月17日 19:57
  • 1105

11.读c语言深度剖析 -- auto register static sizeof signed、unsigned

.1,最宽恒大量的关键字----auto auto:你就当它不存在吧。编译器在默认的缺省情况下,所有变量都是auto的。   1.2,最快的关键字---- register register:...

[C语言]字符串sizeof, strlen详解

1. 字符串: 字符串有两种:C 类型的以及C++ 类型的 1.1. C 类型字符串 C类型的其实就是char *或者char[]类型。 1.1.1. char *类型字符串 有以下定义形式...

C语言的sizeof和strlen

strlen是函数,而sizeof是算符。strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度。 ...

【C语言天天练(五)】strlen和sizeof

sizeof与strlen的区别

c语言中的数组sizeof和strlen

sizeof   strlen sizeof():  返回一个对象或者类型所占的内存字节数。 strlen():  用来计算字符串的长度,遇到"\0"结束。 我们分别从一维数组,字符数组,二维数组...

C语言的sizeof和strlen区别与联系

sizeof指的是占有空间的大小,包括字符串结束的\0。strlen是计算字符串长度,以\0作为结束标志,并且\0不计入数值。 #include #include using namespace...

C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)

找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。        后学保证每...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【笔试常考】C语言:深度剖析strlen,sizeof
举报原因:
原因补充:

(最多只允许输入30个字)