今天Mayuyu在编程时遇到了一个简短的问题,就是在使用语句char *file = "Mayuyu"时会报警告。警告如下
好了,看到了这个,现在Mayuyu就来分析一下。
char *file = "Mayuyu"这个语句声明了一个指针,指向一块全局的const区域,const内存区当然不是你想改就改,如果你想通过指针file来修改的话,那会导致一个非常严重的错误,不信你可以试试下面的语句。
file[0] = ‘a‘;
strcpy(file, "AKB48");
好了,既然"Mayuyu"是const全局常量区,那么我们同样用一个const指针指向它即可。即使用如下语句
const char *file = "Mayuyu";
这样问题解决,这样当你在修改这个const字符串内容时,编译器会给你一个错误而导致你编译不过,从而不会产生运行时的错误。Mayuyu还有一个问题,就是char *p = "Mayuyu"和char p[] = "Mayuyu"的区别在哪里?关于这个问题以前的文章就写过啦!在这里
链接:http://blog.csdn.net/achelloworld/article/details/23176629
最后Mayuyu再强调一下char *p = "Mayuyu"是不合法的哦!!!!
时间: 2024-09-14 07:20:13