BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #42549同步于 2010/8/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

字符数组和字符指针的问题

psSmile
2010/8/20镜像同步11 回复
char s1[] = "aaaaaaaa"; char *s2 = "bbbbbbbb"; aaaaaaaa是在运行时刻赋值的,bbbbbbbb是在编译时刻就确定的。 为什么? 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
FadeToBlack机器人#1 · 2010/8/20
第一个不对 【 在 psSmile (淡淡红茶) 的大作中提到: 】 : char s1 = "aaaaaaaa"; : char *s2 = "bbbbbbbb"; : aaaaaaaa是在运行时刻赋值的,bbbbbbbb是在编译时刻就确定的。 : ...................
zwp机器人#2 · 2010/8/20
第一个能这么写嘛?
psSmile机器人#3 · 2010/8/20
【 在 FadeToBlack 的大作中提到: 】 : 第一个不对 : 【 在 psSmile (淡淡红茶) 的大作中提到: 】 : : char s1 = "aaaaaaaa"; : ................... 不好意思,忘写中括号了,呵呵
zxsword机器人#4 · 2010/8/20
我想应该是这样: 先说第二个,第二个是字符指针,而“bbbbbbb”是一个字符串常量,字符串常量的保存时在.data段,嗯,就数据段,而数据段的地址,在编译时,就可以确定了。 再说第一个,第一个是字符数组,嗯,如果确实没写在函数外面,也没加static的话,那么第二个是自动变量,它的位置,是在堆栈段,而堆栈段的地址,只有运行时才能确定。 可以去看深入理解计算机系统的链接一章=。= 唔,我说的没错吧?
astrophile机器人#5 · 2010/8/20
【 在 zxsword 的大作中提到: 】 : 我想应该是这样: : 先说第二个,第二个是字符指针,而“bbbbbbb”是一个字符串常量,字符串常量的保存时在.data段,嗯,就数据段,而数据段的地址,在编译时,就可以确定了。 : 再说第一个,第一个是字符数组,嗯,如果确实没写在函数外面,也没加static的话,那么第二个是自动变量,它的位置,是在堆栈段,而堆栈段的地址,只有运行时才能确定。 : ................... .data段还是.rodata段?
leimiaos机器人#6 · 2010/8/20
应该说 s1 是运行时刻得到的 aaaaaaaa 不是 【 在 psSmile (淡淡红茶) 的大作中提到: 】 : char s1[] = "aaaaaaaa"; : char *s2 = "bbbbbbbb"; : aaaaaaaa是在运行时刻赋值的,bbbbbbbb是在编译时刻就确定的。 : ...................
leimiaos机器人#7 · 2010/8/20
【 在 zxsword (YNWA) 的大作中提到: 】 : 我想应该是这样: : 先说第二个,第二个是字符指针,而“bbbbbbb”是一个字符串常量,字符串常量的保存时在.data段,嗯,就数据段,而数据段的地址,在编译时,就可以确定了。 : 再说第一个,第一个是字符数组,嗯,如果确实没写在函数外面,也没加static的话,那么第二个是自动变量,它的位置,是在堆栈段,而堆栈段的地址,只有运行时才能确定。 我觉得,s1是在运行时才获得的值,当然这个数组肯定是在栈里面的 而aaaaaaaa这个串可以是在常量区,运行时memcpy给s1,也可以在代码段,挨个赋值,这个 应该是由编译器决定的 : 可以去看深入理解计算机系统的链接一章=。= : 唔,我说的没错吧?
zxsword机器人#8 · 2010/8/20
嗯,我用词不严谨。。。应该是rodata段 【 在 astrophile 的大作中提到: 】 : : .data段还是.rodata段?
psSmile机器人#9 · 2010/8/21
【 在 zxsword 的大作中提到: 】 : 我想应该是这样: : 先说第二个,第二个是字符指针,而“bbbbbbb”是一个字符串常量,字符串常量的保存时在.data段,嗯,就数据段,而数据段的地址,在编译时,就可以确定了。 : 再说第一个,第一个是字符数组,嗯,如果确实没写在函数外面,也没加static的话,那么第二个是自动变量,它的位置,是在堆栈段,而堆栈段的地址,只有运行时才能确定。 : ................... thanks~~