首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

*d=零;是什么意思啊

2012-09-14 
*d0;是什么意思啊?今天看到字符串的倒序排列,但有一处不懂,#include stdio.h#include string.h#inclu

*d=0;是什么意思啊?
今天看到字符串的倒序排列,但有一处不懂,
#include <stdio.h>
#include "string.h"
#include <stdlib.h>
int main()
{
  
  char *src="Hello World";
  int len=strlen(src);
  char *dest=(char *)malloc((len+1)*sizeof(char));
  char *d=dest;
  char *s=&src[len-1];
  while(len--!=0)
*d++=*s--;
  *d=0;
printf("%s \n",dest);
free(dest);
return 0;

}
*d=0;是什么意思?
//尾部要加\0 但是这样加吗?求详解,谢谢大家

[解决办法]
*d
等价于
d[0]
[解决办法]
0 和 '\0' 在C语言这两个是等价了
[解决办法]
while(len--!=0)
*d++=*s--;

最终d指向字符串尾,

*d = 0 即为字符串尾部加‘\0’
[解决办法]
在内容读取字符,遇到0x00就会结束,否则会继续,由于LZ申请出来的内存没有清零操作,不加结束符会出现乱码
[解决办法]

探讨

while(len--!=0)
*d++=*s--;

最终d指向字符串尾,

*d = 0 即为字符串尾部加‘\0’

热点排行