首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

指针有关问题

2012-04-13 
指针问题有两个指针char *p “name”;char *q(char *)malloc(20)*q++*p++;这样写为什么错呢?[解决办法]

指针问题
有两个指针char *p = “name”;char *q=(char *)malloc(20);
*q++=*p++;这样写为什么错呢?

[解决办法]
char *p = “name”;
char *q=(char *)malloc(20);
*q++=*p++;
楼主这样是没有错误的。但上面的语句只是把字符n赋值给q之后q再指向下一个地址。

如果想把name全部拷过来,修改下你的代码
int main(int argc, char **argv)
{
char *p ="name";
char *head = (char *)malloc(20);
char *q = head;
while(*p!='\0')
{
*q++=*p++;
}
*q ='\0';
printf("%s\n",head);
}

或者while(*q++=*p++);因为*p='\0'它就退出循环了

热点排行