VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1122|回复: 8

[求助] 常量字符串的定义问题

[复制链接]
64_avatar_middle
在线会员 发表于 2016-1-2 19:25:18 | 显示全部楼层 |阅读模式
3驿站币
const char FLAG1[] = "falg";
const char *FLAG2 = "falg";
这两种定义方式有什么区别吗?区别在什么地方?常量字符串的定义问题 常量字符串的定义问题 常量字符串的定义问题





上一篇:新手遇见的一个练习题,难住了,希望大神解救。
下一篇:VC延时
64_avatar_middle
ico_lz  楼主| 发表于 2016-1-2 19:50:54 | 显示全部楼层
hahala 发表于 2016-1-2 19:43
第一个
编译时:字符串"falg"被编入文件 占用文件空间
运行前(ring0):文件被加载到内存 包括字符串"fa ...

第二种的字符串分配在哪里
64_avatar_middle
ico_lz  楼主| 发表于 2016-1-2 19:51:23 | 显示全部楼层
hahala 发表于 2016-1-2 19:43
第一个
编译时:字符串"falg"被编入文件 占用文件空间
运行前(ring0):文件被加载到内存 包括字符串"fa ...

第二种的字符串分配在哪里
64_avatar_middle
ico_lz  楼主| 发表于 2016-1-2 19:59:24 | 显示全部楼层

栈上划出一个指针大小的空间(32位机器4字节) 然后写入字符串"falg"的内存地址    写入了字符串"falg"的内存地址  这个字符串的地址是分配在哪里   
78_avatar_middle
online_supermod 发表于 2016-1-2 20:07:54 | 显示全部楼层
你只要知道第一个字符串数组数据可以修改,第二不能修改就可以了。使用FLAG[0]='a'就可以看到明显的区别了
64_avatar_middle
ico_lz  楼主| 发表于 2016-1-2 20:21:50 | 显示全部楼层
jpacg 发表于 2016-1-2 20:07
你只要知道第一个字符串数组数据可以修改,第二不能修改就可以了。使用FLAG[0]='a'就可以看到明显的区别了

const的数组  不能改变的   指针那个倒是可以改变
78_avatar_middle
online_supermod 发表于 2016-1-2 22:23:53 | 显示全部楼层
windzhu 发表于 2016-1-2 20:21
const的数组  不能改变的   指针那个倒是可以改变

好吧,没看清。
47_avatar_middle
在线会员 发表于 2016-1-3 15:20:32 | 显示全部楼层
好像没什么区别
64_avatar_middle
ico_lz  楼主| 发表于 2016-3-22 22:16:50 | 显示全部楼层
我感觉也没什么
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-7-22 10:14

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表