问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以...

发布网友 发布时间:2024-04-01 09:01

我来回答

2个回答

热心网友 时间:2024-07-19 21:51

1 可以不用const,例如:
char aa[] = "abc";
aa[0] = 'd';
printf("%s\n", aa); //这里打印的结果是dbc,aa的大小是4,abc+一个\0
2 const char *aa = "abc";
aa[0] = 'd'; //这个时候是错误的,因为aa是一个指针,指向一个字面常量“abc”,这个字面常量是保存在程序的全局静态数据区,不可更改,默认就是const的,所以char *aa = "abc";是错误的。
3 const char aa[] = "abc";
aa[0] = 'd'; //这里也会报错,因为是const的aa指向的值不可更改。
const char *aa = "abc";
aa = "bcd"; //正确,const 类型 * ptr = value,这样的指针,指向的值不可变,但是指针本身可以重新指向其他地方。
4 怎么才能更改const char aa[] = "abc";中“abc”的值呢?这个时候aa指向的内存在程序的全局内存上(aa是在全局变量)或者在栈内存上(aa是局部变量),非全局静态数据区,所以我们可以强制转换:
const char aa[] = "abc";//但是const char *aa = "abc";这种情况不行,语法没有问题,运行报错,操作系统应该会对静态数据区做保护。
printf("%s %d\n", aa, sizeof(aa));
int bb = (int)aa;
char *ptr = (char*)bb;
ptr[0] = 'd';
printf("%s\n", aa);

热心网友 时间:2024-07-19 21:47

避免后面被修改呗。更安全。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
64岁的老头感冒了,还喝一瓶啤酒,又喝3包感冒药,吃了3个阿莫西林消炎药... ...今天中午12点喝了一瓶啤酒,不会有反应死了吧? 喝一瓶啤酒吃药没事吧 养育孩子有哪些正确的方式? 联想电脑一开机就蓝屏怎么解决 光遇冥想任务怎么完成_冥想任务攻略 光遇 光遇云野的锦鲤池冥想怎么做? 光遇 光遇在滑冰场旁冥想的任务怎么做? 光遇在仙乡的金塔下冥想任务怎么做 任务达成方法介绍 光遇 光遇在禁阁的神坛旁冥想怎么做? 求《月之花语》舞蹈背景音乐! 外地人无犯罪证明怎么开 千足铂PT999现在的市场价格是多少钱一克啊?? 卤代烃消去反应的反应条件 诽谤他人要负什么刑事责任 如何培养学生的实践能力? 联合成本 ,这个词如何分析? 你好!烫伤水肿一般多久能好呢 1990年5月6日中午12点40分出生,上升星座是?太阳星座?月亮星座是?_百度... 嫦娥四号探测器是在我国哪里发射 嫦娥四号探测器是在哪里发射的_百度知 ... 尾田几岁。。再给我一张他的照片 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 1993年农历9月12早上7点的五行缺什么 钢铁之怒游戏安卓APK如何下载 apex竞速游戏安卓游戏如何下载 自制山楂糕 为什么我明明是昨天打的王者荣耀历史战绩却显示今天打的呢? 油条不能和什么一起吃油条不能和哪些一起吃 金谷两家什么什么成语? 双城从兆麟小学到金谷北门8路车都是几点的? 关于c++问题const修饰的变量作为数组的长度的问题? c++,我就想知道为什么会出现一个地址两个值的情况?求大神解答 新零售模式下审计风险的目的 做梦梦见自己背靠着墙站在六楼的楼顶边缘,一点一点往前走,离扶手越... 第一次交2668,每次少交26,共交100次,最后一次交18,问共交了多少?_百度... 6,10,14,18,22,26,30.这个数列中的第668个数除以5的余数是()答案1:解... 求解:小明考试,50分满分制,考试成绩是45.5分,如换算成100分制,小明应 ... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 粤语歌曲串烧里面有一首男儿当自强. 池姓是贵族姓吗 买二手手机,价格是全新的一半,靠谱吗?如6,7百块钱,二手就是2,3百块... 酒红细跟中筒高跟鞋配天蓝色黑色裤子好看嘛 汽油发电机的转子和曲轴怎么分开? 许久是好久好久好久的意思吗许久的意思 sometimes的副词形式有哪些? 请大神用文洁这俩字给写一句诗呗,只要一句里面带着俩字就好谢谢 医院住院高峰期是几月 去中日友好医院坐地铁怎么走? 看图写话,英语作业,帮帮忙 英语作业,看图写话