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
    
  • 相关阅读:
    navigator
    windows事件
    js 数组
    类,屏蔽鼠标右键
    document.links[i].onclick;展示表单的输入
    手机端取消文字选中、取消图片长按下载
    ios显示一个下载banner
    js时间Date对象介绍及解决getTime转换为8点的问题
    iphone的click导致div变黑
    如何给外部引用的js文件传递参数
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/5961933.html
Copyright © 2011-2022 走看看