• 空暇时候思考2(''等价于数字0还是字符0)


    /**********************************************************************      
    * *   Copyright (c)2015,WK Studios    
    * *   Filename:  A.h  
    * *   Compiler: GCC  vc 6.0     
    * *   Author:WK      
    * *   Time: 2015 6 7  
    * **********************************************************************/  
    #include<iostream>
    using namespace std;
    void main()
    {
    	char a[100]={'0',48,48,0,0,'0'};
    	char b[]={'0',48,48,0,0,'0'};
    	char c[]={'0','0'};
    	char d[]={0};
    	//注意一下数字0与字符'0'差别
    	//''等价于数字0而不是字符0
    	cout<<sizeof(a)<<endl;
    	cout<<strlen(a)<<endl;
    	cout<<sizeof(b)<<endl;
    	cout<<strlen(b)<<endl;
    	cout<<sizeof(c)<<endl;
    	cout<<strlen(c)<<endl;
    	cout<<sizeof(d)<<endl;
    	cout<<strlen(d)<<endl;
    

    执行结果:

    100

    3

    6

    3

    2

    7

    1

    0

    不行的话再看一个:

    #include <iostream>
    using namespace std;
    
    
    void example()
    {
    	int i;
    	char acNew[20];
    	for(i = 0; i < 5; i++)
    	{
    		acNew[i] = '0' ;
    	}
    	printf("%d
    ",strlen(acNew));
    	return ;
    }
    
    void main()
    {
    	example();	
    }
    结果是一个随机的值,由于strlen没有找到结束的表示符‘’

    略微修改一下:

    #include <iostream>
    using namespace std;
    
    
    void example()
    {
    	int i;
    	char acNew[20];
    	for(i = 0; i < 5; i++)
    	{
    		acNew[i] = 0 ; // '1'  0
    	}
    	printf("%d
    ",strlen(acNew));
    	return ;
    }
    
    void main()
    {
    	example();	
    }

    这次结果是0


  • 相关阅读:
    PAT B1021 个位数统计 (15)
    PAT B1006 换个格式输出整数 (15)
    PAT A1058 A+B in Hogwarts (20)
    PAT A1027 Colors in Mars (20)
    PAT A1019 General Palindromic Number (20 分)
    PAT B1022 D进制的A+B
    J2EE
    MVC
    数据库长连接短连接
    twisted
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6853740.html
Copyright © 2020-2023  润新知