关闭

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

854人阅读 评论(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而不是字符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\n",strlen(acNew));
	return ;
}

void main()
{
	example();	
}
结果是一个随机的值,因为strlen没有找到结束的表示符‘\0’

稍微改动一下:

#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\n",strlen(acNew));
	return ;
}

void main()
{
	example();	
}

这次结果是0


1
0
查看评论

数理篇 - 高等数学小筑

高等数学就是微积分,级数和方程。微分是对变化以及变化的变化的描述,积分是将空间或时间对象在空间或时间中拆解为小颗粒计算,然后将计算结果求和。级数是将函数描述为叠加形式,以便分而治之。微分方程可看作是对系统输入和输出关系的描述,比如线性时不变系统(LTI)就要用它们来描述。   问题简要: ...
  • aukudos
  • aukudos
  • 2014-03-10 22:48
  • 859

/0 数字0 字符0 的区别

/0 数字0 字符0 的区别在VC++6.0运行程序如下:///////* /0 数字0 字符0 的区别*/#includevoid main(){ char ch1 = /0; /* char ch1 = 0;也可以 */  char ch2 = 0;  p...
  • cheguosheng
  • cheguosheng
  • 2010-02-24 11:17
  • 638

字符0,数字0,‘\0’,NULL

  • LF_2016
  • LF_2016
  • 2016-05-12 23:18
  • 303

Oracle中长度为0字符串与null等价

不试不知道,Oracle中,长度为0的字符串'' 居然与null等价!众所周知,null代表空,什么都不存在,而一个字符串'',虽然长度为0,但毕竟已经是一个字符串,二者怎么能等价,混为一谈呢。在SQL SERVER 中,SELECT ISNULL(ISNULL(nu...
  • leftfist
  • leftfist
  • 2015-04-15 22:35
  • 2511

Mybatis传入参数0 ,会成为空

从页面传参数  0  到mapplerxml
  • u010556068
  • u010556068
  • 2014-05-30 14:57
  • 2884

计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
  • huanghundechenxi
  • huanghundechenxi
  • 2017-08-17 12:52
  • 101

Java数字转字符串自动补0的实现

int n = 19; //%0代表前面补充0, 4代表长度为4, d代表参数为十进制整数 String str = String.format("%04d", n); System.out.println(str); //0019
  • binbinxyz
  • binbinxyz
  • 2014-06-04 20:34
  • 1886

pa=&a[0]等价于pa=a

如果pa指向数组中的某个特定元素,那么
  • leafinsnowfield
  • leafinsnowfield
  • 2014-10-02 10:53
  • 523

数组初始化问题:int a[3]={0}和int a[3]={1}的区别

数组定义同时初始化是个常见的问题,比如,int a[3]={0},其中a[0],a[1],a[2]这三个值都为0。如果这样定义,同时赋值:int a[3]={1},是不是意味着a[0]=1,a[1]=1,a[2]=1呢?这是一个很容易出错的问题,答案肯定不是这样,笔者在多个编译器上试过,结果只有a[...
  • wiedersehen6
  • wiedersehen6
  • 2011-06-26 21:42
  • 467

c语言 字符型数字与数值型数字的转换

在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。   ● 字符串输出函数puts。   ● 字符串输出函数gets。 ...
  • zheyejs
  • zheyejs
  • 2012-04-03 22:11
  • 1371
    个人资料
    • 访问:164939次
    • 积分:3351
    • 等级:
    • 排名:第11920名
    • 原创:176篇
    • 转载:73篇
    • 译文:0篇
    • 评论:16条
    最新评论