关于char *file = "Mayuyu"要说的

本文深入解析了C语言中使用const关键字的重要性,并详细对比了char*p和charp[]两种不同初始化方式的区别,旨在帮助程序员避免常见的编程陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天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"是不合法的哦!!!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值