【1】空白字符空格字符【字符】【2】空白字符串【3】NULL的差异
1.1字符(1)首先,必须明确字符类型(char )是整数类型,作为整数存储在存储单元中。
)然后,char类型被产生以存储字母、数字、标点符号和非打印字符。
)3)为了便于处理文字,用特定的整数表示特定的文字,即我们看到的代码。 实质上是转换替代的思想,用这种代码记述文字最常用的是ASCII码。
1.1.1空白字符空白字符:字符串结束标志((0) ),实际上他的数值为0。 可以理解为象征性的字型,其使命主要是为了表示字符串结束。
空格字符:空格字符(单引号之间有空格)的ASCII代码。十进制32、十六进制0X20
两者的区别:
最直观的区别:值不同的两个ASCII不同,空字符的代码值为0,空格字符的代码值为32。 另外,空文字人为地规定了其使命。
附:‘0’的ASCII是48。 请不要和前面的两个混淆。 三者是完全不同的概念,本身的整数值不同,代表的文字也不同。
1.2字符串字符串:字符串是字符类型的派生类型(char数组)。 字符串中使用的字符串必须以空白字符“ 0”结束,因此所有字符串都必须包含一个空白字符。 当然空字符串“”也不例外。
因为文字和字符串是两种不同的类型,所以也很容易区别,但在这里并不罗嗦。
1.3空:的值为0,为空。 NULL是空地址,不占用字节。 主要用于为指针赋值。 其实是0号。 这个地址不能用c语言访问。 访问发生异常。 NULL一般用于初始化指针变量。 例如:
char *str=NULL; 表示该变量未指向有效的内存区域,避开野点。
#includestdio.hint main () {char d=NULL; printf(%c(n ),d ); printf (空ASCII代码值: %d(n ),d ); if(null==' ' ) (printf )真); }return 0; () ) ) ) )。
请注意以下事项:
)1)从Stdio.h中可以看出,在c中NULL为(int ) 0,而在c中NULL为) void* ) 0。 由此可知,在c和c中,空宏的值不同。
)2) c程序中NULL==' ”为真是因为' '也是数值0,两者不是同一意思,请不要混淆。
(3)NULL可以赋值给任意类型变量,相应值为空
(4)为编程规范,在定义指针时,一般需要初始化,常用NULL来初始化。
int *p=NULL,与直接定义int *p相比,int *p未初始化,p是野生指针,保存随机值的int *p=NULL已初始化为指向空指针。
int *p=NULL等价于int *p=0,p的值为0x00; int * q,q的值是随机值。
带字符串的输出示例:
/* Jason gel 2015-8-29 */# include stdio.hint main () { char * p=' Jason gel Jin 13277480598 '; char * q=空; if(q==' 'q==0) printf )在ASCII代码中,' null '为0,并且为空字符n ' ); //while () p!=' ' () /以下两种写法等价; 与//*具有同等优先级,但从右向左合并,由于后缀的形式,检索到指向p的数据并打印,增加指针1while () p )!=0(//while(p )的话!=0)时,不打印字符串的第一个字符(printf )“%c”,*p ); }printf((n ); 返回0; () ) ) ) )。