您的位置:首页 > 其它

C中字符结尾‘\0’的作用

2016-03-14 18:39 344 查看
这几天看到有讲解Strcat函数原型的,在里面发现一个极其有趣的用法

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
char *strca(char *dst, const char * src)
{
char *dst_t;
dst_t = (char *)malloc(sizeof(dst) + sizeof(src));
char *start = dst_t;
assert(dst && src);
while(*dst_t = *dst)   //是不会进行越界的,默认‘\0’类似“0”,然后跳出
{
dst_t++; dst++;
}
while(*dst_t = *src)
{
dst_t++; src++;
}
*dst_t = '\0';
return start;
}

int main()
{
char *dst = {"wo ai "};
char *src = {"wo de guo jia !"};
printf("%s\n",strca(dst,src));
return 0;
}


中间直接用*dst进行判断没有发生C++中的越界的行为。

编译器‘\0’默认为假,从而跳出判断。 这一点简直比指针省事多了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: