今天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.youkuaiyun.com/achelloworld/article/details/23176629
最后Mayuyu再强调一下char *p = "Mayuyu"是不合法的哦!!!!
本文深入解析了C语言中使用const关键字的重要性,并详细对比了char*p和charp[]两种不同初始化方式的区别,旨在帮助程序员避免常见的编程陷阱。
937

被折叠的 条评论
为什么被折叠?



