讨论华为的一道面试题
从网上看到华为的一道面试题,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char * str1="6789";
char * str2="123456789";
strcpy(str1,str2);
printf("str1=%s\n",str1);
printf("str2=%s\n",str2);
return 0;
}
有没有问题?网上的人说华为里面的人说这段代码是对的。
个人意见:字符串常量存在代码段中,这两个字符串是不可写的。char * str1和char * str2只是获取了常量字符串的首地址,所以strcpy根本无法执行。不知大家的看法是怎样,欢迎讨论。