zoukankan      html  css  js  c++  java
  • sizeof和strlen()区别

    sizeof关键字和strlen()标准函数都可以用来测试字符串的长度,但是两者有很大的不同

    • sizeof只能在本函数内, 使用""不指定长度的字符数组中才能测出字符串的真实长度,当然,包括''
    • strlen()任何情况下都能正确的得出字符串的字面值大小
    • 本函数内,sizeof测试char* s的结果是4byte,测试指定长度的数组是指定的长度
    • 在函数外部,sizeof测试的所有形式的字符串都是4byte
    #include<stdio.h>
    #include<string.h>
    int fcn(const char* str){
    	printf("in fcn :sizeof(str):%d
    ",sizeof(str));
    	printf("in fcn :strlen(str):%d
    ",strlen(str));
    }
    
    int main(int argc, const char *argv[])
    {
    	char a[]="12";
    	char arr[10]="12";
    	char* s="12";
    	printf("in main:sizeof ("12"):%d
    ",sizeof("12"));
    	printf("in main:strlen ("12"):%d
    ",strlen("12"));
    	printf("in main:sizeof(a):%d
    ",sizeof(a));
    	printf("in main:strlen(a):%d
    ",strlen(a));
    	printf("in main:sizeof(arr):%d
    ",sizeof(arr));
    	printf("in main:strlen(arr):%d
    ",strlen(arr));
    	printf("in main:sizeof(s):%d
    ",sizeof(s));
    	printf("in main:strlen(s):%d
    ",strlen(s));
    	fcn("12");
    	fcn(a);
    	fcn(arr);
    	fcn(s);
    	return 0;
    }
    

    输出结果

    $./a.out 
    in main:sizeof ("12"):3
    in main:strlen ("12"):2
    in main:sizeof(a):3
    in main:strlen(a):2
    in main:sizeof(arr):10
    in main:strlen(arr):2
    in main:sizeof(s):4
    in main:strlen(s):2
    in fcn :sizeof(str):4
    in fcn :strlen(str):2
    in fcn :sizeof(str):4
    in fcn :strlen(str):2
    in fcn :sizeof(str):4
    in fcn :strlen(str):2
    in fcn :sizeof(str):4
    in fcn :strlen(str):2
    
  • 相关阅读:
    PHP 超级全局变量
    PHP 魔术变量
    PHP 变量
    Thinkphp 模板中常用的系统变量总结
    PHP $GLOBALS超全局变量分析
    php使用curl的post提交数据和get获取网页数据的方法总结
    php获取客户端真实ip地址的三种方法
    Jquery 【on事件】
    ptyhon【递归练习】
    C#中的线程
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/5961933.html
Copyright © 2011-2022 走看看