数组和指针
请问下面两种情况的区别是什么?
1.char str[] = "12345";
2.char *str = "12345";
问题点数:20、回复次数:7Top
1 楼wangwenhong1000(乖乖兔)回复于 2006-03-23 10:52:37 得分 0
存储上没什么区别,使用上有区别Top
2 楼zjjzcgao(风)回复于 2006-03-23 10:54:13 得分 0
请查看我的BlogTop
3 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-23 10:54:16 得分 0
char *str = "12345";其实是const char* str = "12345";对于*str不能修改.Top
4 楼dnliophsam()回复于 2006-03-23 10:56:46 得分 0
使用上区别在哪里?Top
5 楼abblly(西边日出东边雨)回复于 2006-03-23 11:06:58 得分 10
严重同一
char *str = "12345";其实是const char* str = "12345";对于*str不能修改.
C++之父说本来想强制const char* str = "12345";这种写法的,但是为了成百上千万行的C代码能不被改写而直接使用,保留了char *str = "12345";这种写法。Top
6 楼xm13006162749(温青)回复于 2006-03-23 11:15:17 得分 0
请问他们在内存储存的方面有没有区别?Top
7 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2006-03-23 12:00:13 得分 10
当然有区别。
char *str中的"12345"字符串存储在静态存储区;
char str[]这种情况要分开两部分来讲,用来初始化char str[]的字符串"12345"本身同样存储在静态存储区,但str本身如果具有外部链接,也存储在静态存储区,如果是自动对象,则存储在栈中,其内容是由"12345"复制过去的内容。Top




