您的位置:首页 > 其它

不要效仿这个程序

2012-08-03 22:40 176 查看
C语言中定义字符串时:

char str1[] = "EFG";
char str2[] = {'A', 'B', 'C', 'D', '\0'};   //末尾一定要加'\0'


第二种方法中一定要加'\0'。

strlen函数、puts函数等都是寻找'\0',以'\0'为字符串的结束标志。

Now, hold on to your hat !

下面代码:

#include <stdio.h>

int main(void)
{
char side_a[] = "EFG";
char dont[] = {'A', 'B', 'C', 'D'};    //没有'\0'
printf("side_a = %p\ndont   = %p\n", side_a, dont);
puts(dont);
return 0;
}


输出:



连同side_a中的字符也输出了,dont没有以'\0'结束,就不是字符串的结束,它会向后寻找'\0',直到找到为止,side_a和dont在内存单元中的存储情况如下图所示:



一目了然。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐